- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在努力思考为什么会发生这种情况,但我希望有人能对此有所说明。我正在尝试标记以下文本:
ae0.475 X mod
ae0.842 X mod
ae0.842 X mod
ae0.775 X mod
使用以下代码:
import nltk
file = open("test", "r")
for line in file:
words = line.strip().split(' ')
words = [word.strip() for word in words if word != '']
tags = nltk.pos_tag(words)
pos = [tags[x][1] for x in range(len(tags))]
key = ' '.join(pos)
print words, " : ", key
得到以下结果:
['ae0.475', 'X', 'mod'] : NN NNP NN
['ae0.842', 'X', 'mod'] : -NONE- NNP NN
['ae0.842', 'X', 'mod'] : -NONE- NNP NN
['ae0.775', 'X', 'mod'] : NN NNP NN
我不明白。有谁知道这种不一致的原因是什么?我对 pos 标记的准确性不是很在意,因为我试图提取一些模板,但它似乎在不同的实例中使用不同的标记来表示一个看起来“几乎”相同的词。
作为解决方案,我将所有数字替换为 1 并解决了问题:
['ae1.111', 'X', 'mod'] : NN NNP NN
['ae1.111', 'X', 'mod'] : NN NNP NN
['ae1.111', 'X', 'mod'] : NN NNP NN
['ae1.111', 'X', 'mod'] : NN NNP NN
但我很好奇为什么它在我的第一个案例中用不同的标签标记了实例。有什么建议吗?
最佳答案
我尽最大努力了解未发现的 this来自不使用整个 Brown 语料库的人:
Note that words that the tagger has not seen before, such as decried, receive a tag of None.
所以,我猜像 ae1.111
的东西一定出现在语料库文件中,但没有像 ae0.842
的东西。这有点奇怪,但这就是给出 -NONE-
标签的原因。
编辑:我 super 好奇,downloaded the Brown corpus我自己,并在其中进行纯文本搜索。数字 111
在其中出现了 34 次,而数字 842
只出现了 4 次。 842
仅出现在美元金额的中间或年份的最后 3 位数字,而 111
多次单独作为页码出现。 775
也作为页码出现一次。
所以,我要做出一个猜想,因为 Benford's Law ,与以 8 或 9 开头的数字相比,您最终会更频繁地匹配以 1、2 和 3 开头的数字,因为这些数字通常是书中会引用的随机页面的页码。我真的很想知道这是不是真的(当然,我没有足够的兴趣自己去做!)。
关于python - 词性标注是确定性的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6541141/
我正在使用 SpaCy 进行文本分析,但我无法理解词性 (POS) 和句法依赖分析之间的区别。两者都根据单词的作用在句子中标记单词。但它们究竟有何不同? 最佳答案 我们使用词性标注来标记句子中的标记,
我正在使用 SpaCy 进行文本分析,但我无法理解词性 (POS) 和句法依赖分析之间的区别。两者都根据单词的作用在句子中标记单词。但它们究竟有何不同? 最佳答案 我们使用词性标注来标记句子中的标记,
我正在使用 openNLP 来标记 POS(词性)。 InputStream inputStream = new FileInputStream("C:/en-pos-max
抱歉,我是 Pandas 和 NLTK 的新手。我正在尝试构建一组自定义返回的 POS。我的数据内容: comment 0 [(have, VERB), (you, PRO
我正在尝试执行词性标记,并且我对任何基于 Java 的标记器持开放态度(当前使用 OpenNLP)。有没有办法“强制”标记器将特定术语(或单词组合)识别为特定标签,并据此对其他术语进行分类?有点允许标
我想将 nltk.pos_tag 返回的词性 (POS) 用于 sklearn 分类器,如何将它们转换为向量并使用它?例如 sent = "这是 POS 示例" tok=nltk.tokenize.w
我是一名优秀的程序员,十分优秀!