微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 NLTK

如何解决使用 NLTK

我有 txt 扩展的语料库,格式如下:

Mike NNP B-PERSON
Noah NNP I-PERSON
eats VB O
donuts NN O
Sarah NNP B-PERSON
larsson NNP I-PERSON
comes VB O
from IN O
Stockholm NN B-GPE

我想读取文件来训练 POS 标签(仅获取单词和 POS 标签),就像读取带有括号扩展名的文件(已经是树格式)一样。我尝试使用迭代将语料库更改为 str 格式:

(NNP Mike) (NNP Noah) (VB eats) (NN donuts) (NNP Sarah) (NNP larsson) (VB comes) (IN from) (NN Stockholm)

但是,当我使用 tagged_sents() 函数时,出现错误

'str' object has no attribute 'tagged_sents'

如何正确阅读?有什么建议么?谢谢。

解决方法

尝试使用 ConllChunkCorpusReader,我相信它会类似于下面的这个片段,因为您的语料库文本文件位于项目的根目录中。相应地更新 chunk_types

from nltk.corpus.reader import ConllChunkCorpusReader 
chunk_types = ('PERSON','GPE')
corpusReader = ConllChunkCorpusReader('./','*.txt',chunk_types)
print(corpusReader.iob_words())

这将为您提供元组列表,您可以遍历这些列表以收集 POS 标签..

pos_tags = [postag for token,postag,label in corpusReader.iob_sents()]

参考:https://www.geeksforgeeks.org/nlp-customization-using-tagged-corpus-reader/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。