如何在nltk中使用Regexp标注器?

3 投票
1 回答
4182 浏览
提问于 2025-04-17 13:41

如果我试着运行这段代码:

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)]

撰写回答