MUC数据集的pos_tagging和NER标记无法正常工作

时间:2017-07-17 16:09:32

标签: nltk corpus named-entity-recognition

我的MUC数据集存在问题。我想对此做NER,但是这里有所有的话 数据集是大写字母,因此当运行pos_tagger时,它会错误地检测所有单词 作为名词。为了解决这个问题,整个文本最初转为小写。然而, 这种方式引发了另一个问题;如果文本是小写字母,则NER不起作用 正确地,字面上没有找到“人,组织或地点”。就这样 保留了将整个文本转换为小写,以便能够成功地pos_tag,和 然后执行每个单词的手动大写以将它们输入NER 模块。但是另一个问题引起了,这次NER将所有内容都检测为LOCATION。 这是我的代码:

import nltk
from nltk.tokenize import word_tokenize, sent_tokenize
def NER(input_file, output_file):
    output = open('{0}_NER.txt'.format(output_file), 'w')
    testset = open(input_file).readlines()
    for line in testset:
        line_clean = line.lower().strip()
        tokens = nltk.word_tokenize(line_clean)
        poss = nltk.pos_tag(tokens)
        mylist = []
        for w in poss:
            s = list(w)
            s1 = s[0].upper()
            tmp = (s1, w[1])
            mylist.append(tmp)
        ner_ = nltk.ne_chunk(mylist)

非常感谢任何帮助。 感谢。

以下是此数据集的一部分:

圣萨尔瓦多,1999年1月3日 - [报告] [武装部队新闻委员会, COPREFA] [文本] ARCE BATTALION指挥已经报告了大约50个 各种年龄的农民都被恐怖主义分子逮捕 圣米格尔的FARABUNDO MARTI国家解放前线[FMLN] 部门。根据那个加里森,大众要求坚持到位 12月30日在SAN LUIS DE LA REINA。来自恐怖分子的消息来源 强迫个人,世界卫生组织已经到了一个未知的位置 他们的居民,可以将他们的意愿纳入其中 CLANDESTINE GROUPS。

2 个答案:

答案 0 :(得分:1)

您最好的选择是在案例折叠的文本上训练您自己的命名实体分类器。 nltk book在第6章和第7章中有一步一步的教程。对于培训,您可以使用CONLL 2003 corpus

考虑在案例折叠的文本上训练自己的POS标记器,它可能比你现在使用的nltk POS标记器更好地工作(但检查)。

答案 1 :(得分:0)

如果您的任务是NER,为什么还需要POS标记?据我所知,POS标签并没有真正改善NER结果。我同意Alexis您需要训练自己的分类器,因为您无法获得没有案例信息的字形功能。

相关问题