我目前正在调查从文本中提取人名,位置,技术词和类别的选项(来自网络的大量文章),然后这些文章将被用于Lucene/ElasticSearch索引.然后将附加信息添加为元数据,并且应该提高搜索的精度.
例如,当有人查询"检票口"时,他应该能够决定他是指板球运动还是阿帕奇项目.到目前为止,我试图自己实现这一点并取得了一些成功.现在我找到了很多工具,但我不确定它们是否适合这项任务,哪些与Lucene集成良好,或者实体提取的精度是否足够高.
我的问题:
以下是与该主题相关的一些问题:
我想计算两个任意句子彼此之间的相似程度.例如:
- 一位数学家找到了解决问题的方法.
- 这个问题是由一位年轻的数学家解决的.
我可以使用标记器,词干分析器和解析器,但我不知道如何检测这些句子是否相似.
最近,我一直在尝试使用Stanford Core NLP训练n-gram实体.我已经按照以下教程 - http://nlp.stanford.edu/software/crf-faq.shtml#b
有了这个,我只能指定unigram令牌及其所属的类.任何人都可以指导我,以便我可以将它扩展到n-gram.我试图从聊天数据集中提取电影名称等已知实体.
如果我错误地解释了斯坦福教程,请指导我,同样可以用于n-gram培训.
我坚持的是以下属性
#structure of your training file; this tells the classifier
#that the word is in column 0 and the correct answer is in
#column 1
map = word=0,answer=1
Run Code Online (Sandbox Code Playgroud)
例如,第一列是单词(unigram),第二列是实体
CHAPTER O
I O
Emma PERS
Woodhouse PERS
Run Code Online (Sandbox Code Playgroud)
现在我需要训练像Hulk,Titanic等已知实体(比如电影名称)作为电影,这种方法很容易.但是如果我需要训练我知道你去年夏天做了什么或者宝宝出去做了什么,最好的办法是什么?
nlp named-entity-recognition stanford-nlp named-entity-extraction opennlp
我发现很难创建自己的模型openNLP.任何人都可以告诉我,如何拥有模型.如何进行训练.
应该输入什么以及输出模型文件将存储在何处.
我想要POStag一个英文句子并做一些处理.我想使用openNLP.我安装了它
当我执行命令
I:\Workshop\Programming\nlp\opennlp-tools-1.5.0-bin\opennlp-tools-1.5.0>java -jar opennlp-tools-1.5.0.jar POSTagger models\en-pos-maxent.bin < Text.txt
Run Code Online (Sandbox Code Playgroud)
它为Text.txt中的输入提供输出POSTagging
Loading POS Tagger model ... done (4.009s)
My_PRP$ name_NN is_VBZ Shabab_NNP i_FW am_VBP 22_CD years_NNS old._.
Average: 66.7 sent/s
Total: 1 sent
Runtime: 0.015s
Run Code Online (Sandbox Code Playgroud)
我希望它安装得当吗?
现在我如何从java应用程序内部执行此操作?我已将openNLPtools,jwnl,maxent jar添加到项目中,但我如何调用POStagging?
我刚开始使用OpenNLP.我需要创建一个简单的训练模型来识别名称实体.
在这里阅读文档https://opennlp.apache.org/docs/1.8.0/apidocs/opennlp-tools/opennlp/tools/namefind我看到这个简单的文本来训练模型:
<START:person> Pierre Vinken <END> , 61 years old , will join the board as a nonexecutive director Nov. 29 .
Mr . <START:person> Vinken <END> is chairman of Elsevier N.V. , the Dutch publishing group .
<START:person> Rudolph Agnew <END> , 55 years old and former chairman of Consolidated Gold Fields PLC ,
was named a director of this British industrial conglomerate .
Run Code Online (Sandbox Code Playgroud)
问题是两个:
为什么我必须将这些人的姓名放在文本(短语)语境中?为什么不为每一行写一个人名?喜欢:
<START:person> Robert <END>
<START:person> Maria <END>
<START:person> John <END>
Run Code Online (Sandbox Code Playgroud)我怎样才能为该名称添加额外信息?例如,我想为每个名称保存信息男/女.
(我知道有些系统试图理解它读取最后一个字母,比如 …
我的工作是计划使用UIMA集群来运行文档以提取命名实体,而不是.据我了解,UIMA的NLP组件很少包装.我现在已经测试了GATE一段时间了,并且相当舒服.它在正常文本上运行正常,但是当我们通过一些有代表性的测试数据运行它时,精度会下降.我们内部的文本数据有时是全部大写,有时全是小写,或者是同一文档中两者的混合.即使使用ANNIE的全部大写规则,准确性仍然有很多不足之处.我最近听说过Stanford NLP和OpenNLP,但没有时间对它们进行广泛的训练和测试.这两者在准确性方面与ANNIE相比如何?他们是否像GATE一样与UIMA合作?
提前致谢.
使用机器翻译,我可以获得一个非常压缩的句子版本,例如.我真的想要一杯美味可口的咖啡将被翻译成我想要的咖啡 是否有任何NLP引擎提供这样的功能?
Java - opennlp
我是opennlp的新手,我试着分析这个句子,并且有post标签和chunk结果,但是我无法理解值的含义.是否有任何表可以解释post标签和chunk结果值的完整形式含义?
Tokens: [My, name, is, Chris, corrale, and, I, live, in, Philadelphia, USA, .]
Post Tags: [PRP$, NN, VBZ, NNP, NN, CC, PRP, VBP, IN, NNP, NNP, .]
chunk Result: [B-NP, I-NP, B-VP, B-NP, I-NP, O, B-NP, B-VP, B-PP, B-NP, I-NP, O]
Run Code Online (Sandbox Code Playgroud) 我一直在使用Apache OpenNLP进行一些功能测试,它具有Sentence检测,Tokenization,Name实体识别功能.现在,当我开始查看UIMA文档时,在UIMA主页上提到 - "语言识别"=>"语言特定分段"=>"句子边界检测"=>"实体检测(人/地名等)".
这说我可以使用UIMA完成与OpenNLP相同的任务.增加了什么功能?我是这个领域的新手,请帮助我理解两者的用途和能力.
opennlp ×10
nlp ×8
stanford-nlp ×4
java ×2
uima ×2
file ×1
gate ×1
lucene ×1
mahout ×1
model ×1
nltk ×1
pos-tagger ×1
semantic-web ×1
similarity ×1
text-mining ×1