python - 如何使用 NLTK 构建词性标注语料库?

标签 python nlp nltk pos-tagger tagged-corpus

我尝试从外部 .txt 文件构建一个词性标记的语料库,用于分块以及实体和关系提取。到目前为止,我已经找到了一个繁琐的多步骤解决方案:

  1. 将带有 的文件读入纯文本语料库:

    from nltk.corpus.reader import PlaintextCorpusReader
    my_corp = PlaintextCorpusReader(".", r".*\.txt")
    
  2. 使用内置的 Penn POS-tagger 标记语料库:

    my_tagged_corp= nltk.batch_pos_tag(my_corp.sents())
    

(顺便说一下,此时 Python 抛出了一个错误:NameError: name 'batch' is not defined)

  1. 将标记的句子写入文件:

    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 ()
    
  2. 最后,再次阅读此输出作为标记语料库:

    from nltk.corpus.reader import TaggedCorpusReader
    my_corpus2 = TaggedCorpusReader(".",r"output.txt")
    

这对于一个非常常见的任务来说非常不方便(分块总是需要标记的语料库)。我的问题是:是否有更紧凑和优雅的方式来实现它?例如,同时获取原始输入文件和标注器的语料库阅读器?

最佳答案

我得到了解决方案: 请引用link一步一步的过程。

here 下载必要的文件.

一旦您遵循来自 1 的命令将生成 pickle 文件,这是您标记的语料库。

生成 pickle 文件后,您可以通过运行以下代码来检查您的标记器是否正常工作:

import nltk.data
tagger = nltk.data.load("taggers/NAME_OF_TAGGER.pickle")
tagger.tag(['some', 'words', 'in', 'a', 'sentence'])

关于python - 如何使用 NLTK 构建词性标注语料库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38020141/

相关文章:

python - 我可以使用 nuitka 创建单个文件可执行文件吗?

python - 匹配字符串开头、中间和结尾处的完整单词

python - 如何从 Anaconda 提示符安装 Python 3.9?

machine-learning - 使用句子上下文的命名实体识别

python - 在列表中的 pandas 列中查找关键字匹配项的数量

python - 将图像中的白色像素更改为不同的颜色

java - 如何使用 Open nlp 的分块解析器提取名词短语

nlp - 如何解读 NLTK Brill 标注器规则

nlp - NLTK 字网 : lemma_names vs similar_tos

python - NLTK WordNetLemmatizer : Not Lemmatizing as Expected