赞
踩
每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~
———————————————————————————
openNLP是NLP中比较好的开源工具,R语言中有openNLP packages,但是呢,貌似对中文的支持并不好,笔者试了试,发现结果并不如意。但是也算认识了一番,就来介绍一下。
一些内容转载于白宁超老师:OpenNLP:驾驭文本,分词那些事
————————————————————————————————————————
维基百科:Apache OpenNLP库是一个基于机器学习的自然语言文本处理的开发工具包,它支持自然语言处理中一些共有的任务,例如:标记化、句子分割、词性标注、固有实体提取(指在句子中辨认出专有名词,例如:人名)、浅层分析(句字分块)、语法分析及指代。这些任务通常都需要较为先进的文字处理服务功能。
官方文档:Apache的OpenNLP库是自然语言文本的处理基于机器学习的工具包。它支持最常见的NLP任务,如断词,句子切分,部分词性标注,命名实体提取,分块,解析和指代消解。这些任务通常需要建立更先进的文字处理服务。OpenNLP还包括最大熵和基于感知机器学习。该OpenNLP项目的目标是创造上述任务的成熟工具包。一个附加的目的是提供一种大量预建模型为各种语言,以及这些模型衍生自注释文本资源。
————————————————————————————————————————
R中的openNLP主要有以下几个功能:
序列标注(maxent chunker)、实体命名识别(maxent entity annotator)、词性标注器(ops tag annotator)、句子探测器(sent toen annotator)、解析器(parse annotator)、标记生成器(maxent word token annotator)
文本分块由除以单词句法相关部分,如名词基,动词基的文字,但没有指定其内部结构,也没有其在主句作用。
R语言中函数名称:Maxent_Chunk_Annotator()——Apache OpenNLP Maxent chunker.
名称查找器可检测文本命名实体和数字。为了能够检测实体名称搜索需要的模型。该模型是依赖于语言和实体类型这是训练。所述OpenNLP项目提供了许多这些各种免费提供的语料库训练有素预训练名取景模式。后面会提到如何下载。
根据不同的模型可以查找人名、地名等实体名。
R语言中函数名称:Maxent_Entity_Annotator—— Apache OpenNLP Maxent namefinder.
语音标记器的部分标记符号与基于符号本身和符号的上下文中它们的相应字类型。符号可能取决于符号和上下文使用多个POS标签。该OpenNLP POS标注器使用的概率模型来预测正确的POS标记出了标签组。为了限制可能的标记的符号标记字典可以使用这增加了捉人者的标记和运行时性能。
R语言中函数名称:pos_tag_annotator——Apache OpenNLP MaxentPart of Speech tagger.
功能介绍:
句子检测器是用于检测句子边界。
句子探测器返回一个字符串数组。
R语言中函数名称:sent_token_annotator——Apache OpenNLP Maxentsentence detector尝试解析器最简单的方法是在命令行工具。该工具仅用于演示和测试。请从我们网站上的英文分块解析器模型,并用以下命令启动解析工具。
R语言中函数名称:Parse_Annotator—— Apache OpenNLPchunking parser for English
OpenNLP断词段输入字符序列为标记。常是这是由空格分隔的单词,但也有例外。例如,“isn't”被分割为“is”与“n't",因为它是AA简要格式”isn't“我们的句子分为以下标记:符号通常是词语,标点符号,数字等OpenNLP提供多种标记生成器的实现:
————————————————————————————————————————
openNLP基于众多语料训练了很多已有的实体词、取词场景等,在R中需要到指定网址下载(http://datacube.wu.ac.at/),这里笔者也附上openNLP的官方链接(http://opennlp.sourceforge.net/models-1.5/)
openNLPmodels.da_1.5-2.tar.gz | 2015-04-08 09:56 | 1.2M | 基于conllx ddt 数据的分词、句子探测器、POS标注 | |
openNLPmodels.de_1.5-2.tar.gz | 2015-04-08 09:56 | 8.0M | tiger data数据集分词、句子探测器、POS标注 | |
openNLPmodels.en_1.5-1.tar.gz | 2015-04-08 09:57 | 74M | opennlp training data分词、句子探测器、POS标注、命名实体识别、解析器、序列标注 | |
openNLPmodels.es_1.5-1.tar.gz | 2015-04-08 09:57 | 3.8M | conll02 shared task data的命名实体识别 | |
openNLPmodels.it_1.5-1.tar.gz | 2015-04-08 09:57 | 25M | ||
openNLPmodels.nl_1.5-2.tar.gz | 2015-04-08 09:57 | 4.1M | conllx alpino data的分词、命名实体、POS标注 | |
openNLPmodels.pt_1.5-2.tar.gz | 2015-04-08 09:57 | 2.1M | conllx bosque data的POS标注、句子探测、分词 | |
openNLPmodels.sv_1.5-2.tar.gz | 2015-04-08 09:57 | 2.4M |
其中词性标注有:最大熵模型(Part of Speech Tagger)、感知器模型Perceptron model(pos标注),R只有前者。
从大小来看也知道en是最全面的,所以要下载。
下载的方式跟调用包一样方便:
install.packages("foo", repos = "http://datacube.wu.ac.at/", type = "source")
其中foo代表着你要下载内容的名称,比如:openNLPmodels.en
- s <- paste(c("Pierre Vinken, 61 years old, will join the board as a ",
- "nonexecutive director Nov. 29.\n",
- "Mr. Vinken is chairman of Elsevier N.V., ","the Dutch publishing group."),
- collapse = "")
- s <- as.String(s) #library(NLP)
- sent_token_annotator <- Maxent_Sent_Token_Annotator()
- word_token_annotator <- Maxent_Word_Token_Annotator()
- pos_tag_annotator <- Maxent_POS_Tag_Annotator()
- a3 <- annotate(s,
- list(sent_token_annotator,
- word_token_annotator,
- pos_tag_annotator))
序列标注的code:
annotate(s, Maxent_Chunk_Annotator(probs = TRUE), a3)
实体识别的code:
annotate(s, Maxent_Entity_Annotator(probs = TRUE), a2)
1、open在案例:OpenNLP Tutorial
2、openNLP在R中的数据集:http://datacube.wu.ac.at/
3、R中的openNLP文档:https://cran.r-project.org/web/packages/openNLP/openNLP.pdf
每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~
———————————————————————————
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。