如何在nltk中使用Regexp标注器?
如果我试着运行这段代码:
import nltk
pattern = [(r'(March)$','MAR')]
tagger=nltk.RegexpTagger(pattern)
print tagger.tag('He was born in March 1991')
我得到的输出是这样的:
[('H', None), ('e', None), (' ', None), ('w', None), ('a', None), ('s', None), (' ', None), >('b', None), ('o', None), ('r', None), ('n', None), (' ', None), ('i', None), ('n', None), (' ', None), ('M', None), ('a', None), ('r', None), ('c', None), ('h', None), (' ', None), ('1', None), ('9', None), ('9', None), ('1', None)]
其实我希望这个标记器能识别出“March”这个词,并给它加上“MAR”的标签。
1 个回答
6
你可以试试这个:
import nltk
pattern = [(r'(March)$','MAR')]
tagger = nltk.RegexpTagger(pattern)
print tagger.tag(nltk.word_tokenize('He was born in March 1991'))
你需要把单词分开处理。
这是我得到的结果:
[('He', None), ('was', None), ('born', None), ('in', None), ('March', 'MAR'), ('1991', None)]