我尝试从外部.txt
文件构建一个POS标记的语料库,用于分块和实体及关系提取。到目前为止,我找到了一个繁琐的多步骤解决方案:
将文件读入纯文本语料库:
from nltk.corpus.reader import PlaintextCorpusReader
my_corp = PlaintextCorpusReader(".", r".*\.txt")
使用内置Penn POS tagger标记语料库:
my_tagged_corp= nltk.batch_pos_tag(my_corp.sents())
(顺便说一句,在这个庞特,Python抛出了一个错误:NameError: name 'batch' is not defined
)
把带标签的句子写进文件里:
taggedfile = open("output.txt" , "w")
for sent in dd_tagged:
line = " ".join( w+"/"+t for (w, t) in sent )
taggedfile.write(line + "\n")
taggedfile.close ()
最后,将此输出作为标记语料库再次读取:
from nltk.corpus.reader import TaggedCorpusReader
my_corpus2 = TaggedCorpusReader(".",r"output.txt")
对于一个非常常见的任务来说,这是非常不方便的(分块总是请求带标记的语料库)。我的问题是:有没有更紧凑、更优雅的方式来实现这一点?例如,一个同时获取原始输入文件和标记符的语料库阅读器?在
我找到了解决方法: 请参考link了解分步程序。在
从here下载相同的必要文件。在
一旦您遵循来自1的命令,将生成pickle文件,这是您的标记语料库。在
生成pickle文件后,您可以通过运行以下代码来检查标记器是否正常工作:
相关问题 更多 >
编程相关推荐