Stanford POS tagger FAQ
2017-02-27 19:38
253 查看
原网页http://nlp.stanford.edu/software/pos-tagger-faq.shtml
1.Stanford Tagger使用的标签集是什么?
2.如何使用API?
3.为什么我运行会发生异常
4.How can I lemmatize (reduce to a base, dictionary form) words that have been tagged with the POS tagger?
5.How do I tag pre-tokenized and/or one-sentence per line text?
6.如何实现POS标记器的单个jar文件部署?
7.我可以将标记器作为server运行吗?
8.为什么我一般用完内存?
9.有什么不同的输出格式?
10.你的标记慢吗?
11.如何训练标记器?
12.我应该使用什么模型?
13.“english”和“wsj”有什么区别?
14.标记器使用的distsim cluster是什么?
15.How do I tag one pre-tokenized sentence per line?
16.How do I tag un-tokenized text as one sentence per line?
17.为什么当我尝试优化与search = owlqn时程序崩溃? owlqn在任何地方可用吗?
18.如何将结果输出到文件?
19.如何修复Stanford POS Tagger运行时的NoSuchMethodError或NoSuchFieldError,不能找到后缀为tagger.dict,tagger.tags或tagger.ex的文件?
英语: the Penn Treebank site
. 有一份其文档的在线副本; 特别是,参见TAGGUID1.PDF(POS标记指南)。 还有其他更简单的列表,如AMALGAM项目页面。
中文:the Penn Chinese Treebank
请阅读每个语料库的文档,了解他们的标签集。 您通常也可以通过Web搜索来查找其他文档资源。
3.为什么我运行会发生异常
这意味着您的Java CLASSPATH未正确设置,因此找不到标记(在stanford-tagger.jar中)。 请参见README.txt文件中的示例,了解如何使用-cp或-classpath选项设置类路径。 有关Java类路径的一般讨论,请参阅http://en.wikipedia.org/wiki/Classpath_(Java)。
对于英语(仅仅英语),您可以使用包含的Morphology类。 你可以使用标志-outputFormatOptions lemmatize来做到这一点。 例如:
你可以对已经分词的文本进行标记
你可以对文本中每行一个句子进行标记:
1)在下载的tagger解压后的主目录中启动
2)对jar文件制作一个副本,我们将在jar文件中放入一个tagger模型
3)将模型放在包含jar文件的路径的上
4)将一个或多个模型放入到jar文件 - 我们通常在edu / stanford / nlp / models /下执行
5)现在可以通过直接从类路径加载jar文件来指定加载此模型
6)或者,在代码中,您可以类似像这样加载tagger,如下所示:
如果你这样做,你可能也对单一jar部署感兴趣。 在我们的例子中,我们对于以前的问题作出了一些回答(但这两个特性是独立的)。 所示的命令适用于Unix / Linux / Mac OS X系统。 对于Windows,您反转斜杠等。您通过指定模型和端口在某台主机上启动服务器:
同样的类包含一个演示客户端,您将需要适应自己的需求。 你可以这样调用它:
如果你在同一台机器上运行服务器和客户端,那么你可以忽略-host参数。 您可以根据需要为服务器调用MaxentTaggerServer提供其他MaxentTagger选项,如-outputFormat tsv。
从命令行运行,您需要提供一个标志,如-mx1g。 数字1g只是一个例子; 如果你没有那么多的内存可用,则使用较少内存,以便您的计算机不开始分页。 为了运行tagger,-mx500m应该是足够的; 为了训练复杂的标签,你可能需要更多的内存。
从Eclipse中运行时,请按照这些说明增加从Eclipse内部运行的程序的内存。 增加给Eclipse本身的内存量不会有帮助。
还要注意,方法tagger.tokenizeText(reader)将对读取器中的所有文本进行tokenize(分词),并将所有文本放在内存中。 这对于合理大小的文件是正确的。 然而,如果你有巨大的文件,这可以消耗很大的内存量。 您将需要采用备用策略,您一次只能对部分文本进行标记(例如,一次可能是一个段落)。
ps:有部分还没有翻译,以后需要用到的时候再翻译吧。
1.Stanford Tagger使用的标签集是什么?
2.如何使用API?
3.为什么我运行会发生异常
Exception in thread "main" java.lang.NoClassDefFoundError:edu/stanford/nlp/tagger/maxent/MaxentTagger?
4.How can I lemmatize (reduce to a base, dictionary form) words that have been tagged with the POS tagger?
5.How do I tag pre-tokenized and/or one-sentence per line text?
6.如何实现POS标记器的单个jar文件部署?
7.我可以将标记器作为server运行吗?
8.为什么我一般用完内存?
9.有什么不同的输出格式?
10.你的标记慢吗?
11.如何训练标记器?
12.我应该使用什么模型?
13.“english”和“wsj”有什么区别?
14.标记器使用的distsim cluster是什么?
15.How do I tag one pre-tokenized sentence per line?
16.How do I tag un-tokenized text as one sentence per line?
17.为什么当我尝试优化与search = owlqn时程序崩溃? owlqn在任何地方可用吗?
18.如何将结果输出到文件?
19.如何修复Stanford POS Tagger运行时的NoSuchMethodError或NoSuchFieldError,不能找到后缀为tagger.dict,tagger.tags或tagger.ex的文件?
1.Stanford Tagger使用的标签集是什么?
您可以使用任何标记集训练Stanford POS Tagger的模型。 对于我们发布的模型,标签集取决于语言,模型建立于underlying treebanks 。 也就是说,标签集完全或主要由treebank producers决定,而不是我们。 这里是相关链接:英语: the Penn Treebank site
. 有一份其文档的在线副本; 特别是,参见TAGGUID1.PDF(POS标记指南)。 还有其他更简单的列表,如AMALGAM项目页面。
中文:the Penn Chinese Treebank
请阅读每个语料库的文档,了解他们的标签集。 您通常也可以通过Web搜索来查找其他文档资源。
2.如何使用API?
x下载包中包含了一个简短的示例程序,它将演示如何加载工具并开始处理文本。 当使用此演示程序时,请确保在类路径中包括所有恰当的jar文件。3.为什么我运行会发生异常Exception in thread "main" java.lang.NoClassDefFoundError:edu/stanford/nlp/tagger/maxent/MaxentTagger?
这意味着您的Java CLASSPATH未正确设置,因此找不到标记(在stanford-tagger.jar中)。 请参见README.txt文件中的示例,了解如何使用-cp或-classpath选项设置类路径。 有关Java类路径的一般讨论,请参阅http://en.wikipedia.org/wiki/Classpath_(Java)。4.How can I lemmatize (reduce to a base, dictionary form) words that have been tagged with the POS tagger?
我怎么能lemmatize(减少到一个基数,字典形式)已经用POS标记器标记的单词?对于英语(仅仅英语),您可以使用包含的Morphology类。 你可以使用标志-outputFormatOptions lemmatize来做到这一点。 例如:
$ java -cp "*" edu.stanford.nlp.tagger.maxent.MaxentTagger -model edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger -textFile samsawme.txt -outputFormat inlineXML -outputFormatOptions lemmatize <?xml version="1.0" encoding="UTF-8"?> <pos> <sentence id="0"> <word wid="0" pos="NNP" lemma="Sam">Sam</word> <word wid="1" pos="VBD" lemma="see">saw</word> <word wid="2" pos="PRP" lemma="I">me</word> <word wid="3" pos="." lemma=".">.</word> </sentence> </pos>
5.How do I tag pre-tokenized and/or one-sentence per line text?
你可以对已经分词的,每行一个已经预标记文本进行标记,使用标签:-sentenceDelimiter newline -tokenize false
你可以对已经分词的文本进行标记
-tokenize false
你可以对文本中每行一个句子进行标记:
-sentenceDelimiter newline
6.如何实现POS标记器的单个jar文件部署?
您可以将一个或多个标记器模型放入到jar文件中,并从中提供用于加载模型的选项。 这里有详细的说明:1)在下载的tagger解压后的主目录中启动
2)对jar文件制作一个副本,我们将在jar文件中放入一个tagger模型
cp stanford-postagger.jar stanford-postagger-withModel.jar
3)将模型放在包含jar文件的路径的上
mkdir -p edu/stanford/nlp/models/pos-tagger/english-left3words cp models/english-left3words-distsim.tagger edu/stanford/nlp/models/pos-tagger/english-left3words
4)将一个或多个模型放入到jar文件 - 我们通常在edu / stanford / nlp / models /下执行
jar -uf stanford-postagger-withModel.jar edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger
5)现在可以通过直接从类路径加载jar文件来指定加载此模型
java -mx300m -cp stanford-postagger-withModel.jar edu.stanford.nlp.tagger.maxent.MaxentTagger -model edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger -textFile sample-input.txt
6)或者,在代码中,您可以类似像这样加载tagger,如下所示:
MaxentTagger tagger = new MaxentTagger("edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger");
7.我可以将标记器作为server运行吗?
是! (这是在2.0版本中添加的。)我们提供MaxentTaggerServer作为基于socket服务使用POS tagger的简单示例。 通过一些工作,我们确信您可以将此示例适用于REST,SOAP,AJAX或任何系统。 如果没有,付给我们一些钱,我们会为你解决此问题。如果你这样做,你可能也对单一jar部署感兴趣。 在我们的例子中,我们对于以前的问题作出了一些回答(但这两个特性是独立的)。 所示的命令适用于Unix / Linux / Mac OS X系统。 对于Windows,您反转斜杠等。您通过指定模型和端口在某台主机上启动服务器:
java -mx300m -cp stanford-postagger-withModel.jar edu.stanford.nlp.tagger.maxent.MaxentTaggerServer -model edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger -port 2020 &
同样的类包含一个演示客户端,您将需要适应自己的需求。 你可以这样调用它:
$ java -cp stanford-postagger.jar edu.stanford.nlp.tagger.maxent.MaxentTaggerServer -client -host nlp.stanford.edu -port 2020 Input some text and press RETURN to POS tag it, or just RETURN to finish. I hope this'll show the server working. I_PRP hope_VBP this_DT 'll_MD show_VB the_DT server_NN working_VBG ._.
如果你在同一台机器上运行服务器和客户端,那么你可以忽略-host参数。 您可以根据需要为服务器调用MaxentTaggerServer提供其他MaxentTagger选项,如-outputFormat tsv。
8.为什么我一般用完内存?
如果运行tagger而不改变向Java提供的内存量,则可能会耗尽内存。 当程序以OutOfMemoryError结束时,这将是明显的。从命令行运行,您需要提供一个标志,如-mx1g。 数字1g只是一个例子; 如果你没有那么多的内存可用,则使用较少内存,以便您的计算机不开始分页。 为了运行tagger,-mx500m应该是足够的; 为了训练复杂的标签,你可能需要更多的内存。
从Eclipse中运行时,请按照这些说明增加从Eclipse内部运行的程序的内存。 增加给Eclipse本身的内存量不会有帮助。
还要注意,方法tagger.tokenizeText(reader)将对读取器中的所有文本进行tokenize(分词),并将所有文本放在内存中。 这对于合理大小的文件是正确的。 然而,如果你有巨大的文件,这可以消耗很大的内存量。 您将需要采用备用策略,您一次只能对部分文本进行标记(例如,一次可能是一个段落)。
18.如何将结果输出到文件?
使用shell 重定向符 > filenameps:有部分还没有翻译,以后需要用到的时候再翻译吧。
相关文章推荐
- Unable to resolve "edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.
- POS-tagger程序总结
- Stanford NER CRF FAQ
- 如何使用斯坦福pos tagger进行词性标注[转—英文]
- POS Tags used in opennlp pos tagger
- python运行时提示“ Resource u'taggers/maxent_treebank_pos_tagger/english.pickle' not found. ”
- FAQ - 什么是软件工厂?(翻译)
- 如何寻找主库binlog和pos点
- Stanford's Andrew Ng课程疑问一
- kbengine FAQ(3)
- Dynamic AX 的零售 POS 开发-代码示例
- POS的一点杂笔
- Machine Learning(Stanford)| 斯坦福大学机器学习笔记--第一周(5.线性回归的梯度下降)
- [FAQ08836]如何调试malloc(堆越界)问题
- airflow FAQ
- 以太坊的POS共识机制(一)友善的小精灵 Casper
- [FAQ19108]如何用MMU增强保护buddy system?
- QPBOC交易流程详解--POS与卡片的数据交互进行分析
- Deep Learning Tutorial - Stanford