首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SharpNLP来检测一行文本是句子的可能性?

如何使用SharpNLP来检测一行文本是句子的可能性?
EN

Stack Overflow用户
提问于 2014-04-14 13:36:40
回答 1查看 711关注 0票数 0

我已经写了一个小的C#程序,它将一串单词编译成一行文本,我想使用NLP只是为了让我知道这一串单词是一个句子的可能性。如果需要的话,我不需要令牌或标签,所有这些都可以在后台完成。我在我的项目中引用了OpenNLP和SharpEntropy,但出现了一个错误“数组维度超过支持的范围”。在使用这些方法时,我也尝试过在没有锐熵的情况下使用IKVM创建的OpenNLP,但在没有文档的情况下,我似乎无法考虑正确的步骤来仅获得百分比概率。

任何帮助或指导都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-04-16 02:26:52

我将推荐两个相对简单的方法,它们可能会帮助你将一个单词序列分类为句子/非句子。不幸的是,我也不知道SharpNLP会处理得多好。更完整的工具包存在于Java、Python和C++ (LingPipe、Stanford CoreNLP、GATE、NLTK、OpenGRM等)中。

语言模型概率:在句子的开头/结尾带有开始和结束标记的句子上训练语言模型。根据该语言模型计算目标序列的概率。语法和/或语义敏感的单词序列将比随机单词序列得分高得多。这种方法应该与标准n元语法模型、判别性条件概率模型或几乎任何其他语言建模方法一起工作。但一定要从基本的n-gram模型开始。

解析树概率:类似地,您可以测量恢复的成分结构的内部概率(例如,通过概率上下文无关语法解析)。更多的语法序列(即更有可能是一个完整的句子)将反映在更高的内部概率中。如果按序列长度进行归一化,您可能会获得更好的结果(同样的情况也可能适用于语言建模方法)。

我已经在tweet上看到了初步的(但未公布的)结果,这些结果似乎表明归一化概率的双峰分布-被人类注释者判断为语法更多的tweet通常落在较高的峰值内,而那些被判断为语法较少的tweet聚成一个较低的峰值。但我不知道在更大规模或更正式的研究中,这些结果会有多好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23052667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档