【发布时间】:2020-07-24 07:54:06
【问题描述】:
我正在尝试制作一个“修复错误的大写”程序,并且我正在尝试使用 NLTK 的 pos 标记器在 python 中找到专有名词。问题在于,对于大小写错误/缺失的文本,它似乎效果不佳。
这是我目前的代码:
import nltk
text = "This is My text. Unicorns are very Nice, I think. how do you do? are you okay! testing capitalisation. my nice Friend is called bob he lives in america."
tokenized_words = nltk.word_tokenize(text)
pos_tagged_text = nltk.pos_tag(tokenized_words)
print(pos_tagged_text)
输出是:
[('This', 'DT'), ('is', 'VBZ'), ('My', 'PRP$'), ('text', 'NN'), ('.', '.'), ('Unicorns', 'NNS'), ('are', 'VBP'), ('very', 'RB'), ('Nice', 'NNP'), (',', ','), ('I', 'PRP'), ('think', 'VBP'), ('.', '.'), ('how', 'WRB'), ('do', 'VB'), ('you', 'PRP'), ('do', 'VB'), ('?', '.'), ('are', 'VBP'), ('you', 'PRP'), ('okay', 'JJ'), ('!', '.'), ('testing', 'VBG'), ('capitalisation', 'NN'), ('.', '.'), ('my', 'PRP$'), ('nice', 'JJ'), ('Friend', 'NNP'), ('is', 'VBZ'), ('called', 'VBN'), ('bob', 'NN'), ('he', 'PRP'), ('lives', 'VBZ'), ('in', 'IN'), ('america', 'NN'), ('.', '.')]
如您所见,有很多错误。 “Nice”会被标记为专有名词,“Friend”也是如此,而“bob”和“america”则不会。
无论大小写如何,我如何找到专有名词?
【问题讨论】:
-
是的,这就是
nltk的问题。我建议你使用standford parser比nltk更好 -
@SaiSreenivas 学习是否需要很多时间/学习是否复杂?
标签: python nltk pos-tagger