如何通过斯坦福NLP工具培训中国分段模型

时间:2014-12-05 12:49:10

标签: java nlp classification stanford-nlp

我是斯坦福CoreNLP工具的新手。现在我没有得到中文的优秀片段结果,所以我想改变Segmenter的粒度。我以为我可以通过训练自己的词汇来做到这一点。

我下载了trainSegmenter-20080521文件,然后按照trainSegmenter-20080521/README.txt

这是README.txt:

Sat Jun 21 00:57:22 2008
Author: Pi-Chuan Chang

Here's a documentation of how to train and test the segmenter on specific split 
range of the CTB data.

The following steps assumes you have 3 files defining the ranges of train/dev/test.
They should be named as "ctb6.train", "ctb6.dev", "ctb6.test" respectively.
The format should be like:
      chtb_0003.fid
      chtb_0015.fid
      ...

[STEP 1] change the CTB6 path in the Makefile:
      CTB6=/afs/ir/data/linguistic-data/Chinese-Treebank/6/

[STEP 2] download and uncompress the lastest segmenter from:
      http://nlp.stanford.edu/software/stanford-chinese-segmenter-2008-05-21.tar.gz
and change this path in the Makefile to your local path:
      SEGMENTER=/tmp/stanford-chinese-segmenter-2008-05-21/

[STEP 3] simply type:
      make all
You can also split down into these sub-steps:
      make internaldict # make internal dictionaries for affixation feaetures
      make data         # make datasets
      make traintest    # train & test the CRF segmenter

但我仍有一些问题:

  1. 培训文件的格式是什么,{{1>}的格式是什么?

  2. 什么是train/dev/testchtb_0003.fid等等?

  3. Makefile中的chtb_0015.fid是什么,似乎我应该将变量CTB6 path更改为CTB6。但它确实存在,似乎不是一个有效的子路径。

  4. 顺便说一句,应该为特殊要求设置许多属性,例如/afs/ir/data/linguistic-data/Chinese-Treebank/6/sighanPostProcessing

    有什么地方可以获得所有这些属性及其解释吗?

    我现在所能做的只是阅读源代码,例如serDictionary,但我仍然对这些属性标记感到困惑。

    非常感谢任何人的帮助。

2 个答案:

答案 0 :(得分:2)

我会忽略README。其中的信息已经过时了。

最近的解释是:

http://nlp.stanford.edu/software/segmenter-faq.shtml

预期的输入格式是每行一个句子,每行都有已分段的文本。如果从分析树中获取分段数据,则有一些工具可以从分析树转换为分段文本。

如果有特定句子没有正确分割,可能是因为它使用的是CTB分割标准,你更喜欢不同的东西。也可能是因为分词者不知道的话。如果您将遵循CTB分段标准的例句发送给java-nlp-user,那些未知单词最终会进入分段器的训练数据。

答案 1 :(得分:1)

或许联系Pi-Chuan Chang是最好的答案,但我确实对此有所了解。尽我所能回答你的问题:

  1. 火车/开发/测试集的格式为中国树库的格式;我收集它的第6版:https://catalog.ldc.upenn.edu/LDC2007T36

  2. * .fid文件看起来是句子的解析树。格式如下(注意我的文本编辑器没有正确显示中文字符):

    < DOC> < DOCID> XIN19981227.0018< / DOCID> < HEADER> < DATE> 1998年12月27日< / DATE> < / HEADER> < BODY> < HEADLINE> < S ID = 6470> ((IP-HLN(NP-SBJ(NP-PN(NR< D6< D0< B>< FA>))                   (ADJP(JJ< C3< F1>< D3>< AA>))                   (NP(NN< BF><>< BC>< BC>)                       (NN< C6>< F>< D2>< B5>)))           (VP(VV< B2>< BD>< C8>< EB>)               (NP-OBJ(PU< A1>< B0>)                       (NN< BB><><><><><><><><>>                       (NN< CA>< B1>< B4>< FA>)                       (PU< A1>< B1>))))) < / S> < / HEADLINE> < TEXT> < P> < S ID = 6471> ((FRAG(NR< D><><><><><><<><><<><><><<><<><>              (NR< C>< EE>< DB>< DA>              (NT< CA>< A>< B><>< D>< D>< D><><>< D><>              (NT< B6< FE>< CA><><><><><><><><><><><><><><><><>              (NN< B5>< E7>)              (PU< A3< A8>)              (NN< BC>< C7>< D5< DF>)              (NR< BA>< B>< B>< B><><>< B>< B>< B>              (NR< D5< C5>< C>< C><><><><><><>                  (PU< A3>< A9>))) < / S> ...

  3. README中给出的路径是斯坦福机器上的本地路径。这不是正确的道路。您应该将其更改为本地内容,然后将树库(https://catalog.ldc.upenn.edu/LDC2007T36)放在那里。请注意,您需要LDC许可证!