2015-04-07 99 views
1

我是WEKA的新手,我想问你几个有关WEKA的问题。 我按照这个教程(Named Entity Recognition using WEKA)。使用WEKA命名实体识别

但我真的很困惑,根本不知道。

  1. 是否有可能如果我想通过短语而不是词/标记过滤字符串?

举例来说,在我的.ARFF文件:

@attribute text string 
    @attribute tag {CC, CD, DT, EX, FW, IN, JJ, JJR, JJS, LS, MD, NN, NNS, NNP, NNPS, PDT, POS, PRP, PRP$, RB, RBR, RBS, RP, SYM, TO, UH, VB, VBD , VBG, VBN , VBP, VBZ, WDT, WP, WP$, WRB, ,, ., :} 
    @attribute capital {Y, N} 
    @attribute chunked {B-NP, I-NP, B-VP, I-VP, B-PP, I-PP, B-ADJP, B-ADVP , B-SBAR, B-PRT, O-Punctuation} 
    @attribute @@[email protected]@ {B-PER, I-PER, B-ORG, I-ORG, B-NUM, I-NUM, O, B-LOC, I-LOC} 

    @data 
    'Wanna',NNP,Y,B-NP,O 
    'be',VB,N,B-VP,O 
    'like',IN,N,B-PP,O 
    'New',NNP,Y,B-NP,B-LOC 
    'York',NNP,Y,I-NP,I-LOC 
    '?',.,N,O-Punctuation,O 

所以,当我过滤字符串,它标记化串入词,但我想是的,我要来标记/根据过滤字符串到这句话。例如根据分块的属性提取短语“纽约”而不是“纽约”和“约克”。

“B-NP”表示开始短语,“I-NP”表示下一个短语(短语的中间或结尾)。

  • 我怎样才能显示结果为例如分类类:
  • B-PER和I-PER为类名的人吗?

        TP Rate FP Rate Precision Recall F-Measure ROC Area Class 
            0   0.021  0   0   0   0.768 B-PER 
            1   0.084  0.333  1   0.5  0.963 I-PER 
            0.167  0.054  0.167  0.167  0.167  0.313 B-ORG 
            0   0   0   0   0   0.964 I-ORG 
            0   0   0   0   0   0.281 B-NUM 
            0   0   0   0   0   0.148 I-NUM 
            0.972  0.074  0.972  0.972  0.972  0.949 O 
            0.875  0   1   0.875  0.933  0.977 B-LOC 
            0   0   0   0   0   0.907 I-LOC 
    

    加权平均值。 0.828 0.061 0.811 0.828 0.813 0.894

    回答

    2

    在我看来,WEKA不会(现在)成为最好的机器学习软件来执行NER ...据我所知,WEKA的确对不同的例子进行了分类,对于NER它可能做到无论:

    1. 通过令牌令牌化的句子:在这种情况下,序列(即邻接)将会丢失......“新”和“纽约”是两个不同的例子,事实上,这些话连续不会被以任何方式考虑在内。
    2. 通过保留块/句子作为示例:然后可以将序列保留为一个整体并进行过滤(例如StringToWordVector),但是必须为每个块/句子关联一个类(例如O + O + O + B-LOC + I-LOC + O是你例子中全句的类)。

    在这两种情况下,都没有考虑到连续性,这实在令人不安。此外,据我所知,这是相同的R(?)。这就是为什么“顺序标注”(NER,morpho-syntax,语法和依赖关系)通常使用软件来完成的,该软件使用当前词,还包括前一个词,下一个词等来确定一个标记类别,并且可以输出单个标记,结构更复杂。

    对于NER,目前,CRF通常用于那些,参见:

    • CRF ++
    • CRFSuite
    • 马鹿
    • ...
    +0

    谢谢eldams。 – tee

    +0

    不客气 - 不要犹豫,我的答案投票,如果它确实有帮助... :) – eldams

    +1

    N-grams(N个单词/项目的secuences)是这项任务的有用方法吗?这可以通过预处理输入并将数据转换为Weka实例(作为实例的N-gram)来完成。对于外部参考,这也称为shingling(拼写:相当于N,secuence的单词,字符,事件等)。 – shirowww

    相关问题