我想计算两个任意句子彼此之间的相似程度.例如:
- 一位数学家找到了解决问题的方法.
- 这个问题是由一位年轻的数学家解决的.
我可以使用标记器,词干分析器和解析器,但我不知道如何检测这些句子是否相似.
我想做的就是找到任何给定字符串的情绪(正/负/中性).在研究中,我遇到了斯坦福NLP.但遗憾的是它在Java中.关于如何让它适用于python的任何想法?
最近,我一直在尝试使用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
我最近开始使用NLTK工具包来使用Python创建一些解决方案.
我听说很多关于使用斯坦福NLP的社区活动.谁能告诉我NLTK和斯坦福NLP有什么区别?它们是2个不同的库吗?我知道NLTK有一个与斯坦福NLP的接口,但是任何人都可以对一些基本差异或更详细的内容有所了解.
可以使用Python使用stanford NLP吗?
我正在使用斯坦福命名实体识别器http://nlp.stanford.edu/software/CRF-NER.shtml,它工作正常.这是
List<List<CoreLabel>> out = classifier.classify(text);
for (List<CoreLabel> sentence : out) {
for (CoreLabel word : sentence) {
if (!StringUtils.equals(word.get(AnswerAnnotation.class), "O")) {
namedEntities.add(word.word().trim());
}
}
}
Run Code Online (Sandbox Code Playgroud)
然而,我发现的问题是识别姓名和姓氏.如果识别器遇到"Joe Smith",它将分别返回"Joe"和"Smith".我真的希望将"乔·史密斯"作为一个词来回归.
这可以通过识别器通过配置来实现吗?到目前为止,我在javadoc中找不到任何东西.
谢谢!
我是Java和Stanford NLP工具包的新手,并尝试将它们用于项目.具体来说,我正在尝试使用Stanford Corenlp工具包来注释文本(使用Netbeans而不是命令行),我尝试使用http://nlp.stanford.edu/software/corenlp.shtml#Usage上提供的代码(使用Stanford CoreNLP API)..问题是:有人能告诉我如何在文件中获取输出以便我可以进一步处理它吗?
我已经尝试将图形和句子打印到控制台,只是为了查看内容.这样可行.基本上我需要的是返回带注释的文档,这样我就可以从我的主类中调用它并输出一个文本文件(如果可能的话).我正在尝试查看stanford corenlp的API,但由于缺乏经验,我不知道返回此类信息的最佳方法是什么.
这是代码:
Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
// read some text in the text variable
String text = "the quick fox jumps over the lazy dog";
// create an empty Annotation just with the given text
Annotation document = new Annotation(text);
// run all Annotators on this text
pipeline.annotate(document);
// these are all the sentences in this document
// …
Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用Stanford Parser,但我不太了解这些标签.这可能是一个愚蠢的问题,但任何人都可以告诉我SBARQ和SQ标签代表什么,我在哪里可以找到它们的完整列表?我知道Penn Treebank的样子,但这些略有不同.
Sentence: What is the highest waterfall in the United States ?
(ROOT
(SBARQ
(WHNP (WP What))
(SQ (VBZ is)
(NP
(NP (DT the) (JJS highest) (NN waterfall))
(PP (IN in)
(NP (DT the) (NNP United) (NNPS States)))))
(. ?)))
Run Code Online (Sandbox Code Playgroud)
我查看了Stanford Parser网站并阅读了其中列出的一些期刊,但没有解释前面提到的标签.我找到了一本描述所有依赖项的手册,但它没有解释我在寻找什么.谢谢!
使用Java进行文本简化的最佳工具是什么?
以下是文本简化的示例:
John, who was the CEO of a company, played golf.
?
John played golf. John was the CEO of a company.
Run Code Online (Sandbox Code Playgroud) 我的工作是计划使用UIMA集群来运行文档以提取命名实体,而不是.据我了解,UIMA的NLP组件很少包装.我现在已经测试了GATE一段时间了,并且相当舒服.它在正常文本上运行正常,但是当我们通过一些有代表性的测试数据运行它时,精度会下降.我们内部的文本数据有时是全部大写,有时全是小写,或者是同一文档中两者的混合.即使使用ANNIE的全部大写规则,准确性仍然有很多不足之处.我最近听说过Stanford NLP和OpenNLP,但没有时间对它们进行广泛的训练和测试.这两者在准确性方面与ANNIE相比如何?他们是否像GATE一样与UIMA合作?
提前致谢.
使用机器翻译,我可以获得一个非常压缩的句子版本,例如.我真的想要一杯美味可口的咖啡将被翻译成我想要的咖啡 是否有任何NLP引擎提供这样的功能?