目标
我的目标是创建一个可以验证句子语法正确程度的API。我正在使用马尔可夫链生成一堆线条,我想根据它们的含义对它们进行排名。
我希望能够提供一些输入:
[
"This sentence is totally great!",
"Not great so sentence this one.",
"From on in where is are for pig."
]
然后得到一些输出:
[
0.71,
0.30,
-0.43,
]
我目前在哪里
我已经看过使用斯坦福分析器,但我认为没有办法使用你自己的语料库。
目前,我正在使用微软联合概率认知服务,它也不允许使用自定义语料库,而且看起来很不成熟。
直接提问
这是一个解决的问题吗?
这种问题/研究叫什么? (所以我知道如何谷歌四处寻找它)
有什么方法可以完成这样的事情?
答案 0 :(得分:0)
我不知道为什么你无法使用自己的语料库和stanford解析器,但你总是可以使用OpenNLP。
这就是我要做的事情:
答案 1 :(得分:0)
解决您需求的最简单方法是从语料库中创建一个语言模型,然后针对它评估您的测试句子,这将为您提供某种分数。您可以查看结果,看看是否需要更复杂的方法。
我会从一个字符语言模型开始,对于10k左右的句子大概可达6克,如果你有大量数据则更长,更短,更少。你将不得不玩它。您还可以在2-4令牌范围内尝试令牌语言模型。 LingPipe的教程是here。 不完全是你的用例,但它最不具体。
很容易构建并对语料库敏感。
您可以尝试将问题视为拼写检查问题而不是拼写纠正,而是使用支持语言模型进行语法修正,通知编辑是否有改进的内容。获得良好估计所需的更多编辑将转化为原始语法的较低分数。最接近的代码是我们的教程here。
但是需要进行大量修改才能应用于语法用例。
如果语言模型方法不起作用,有许多方法可以解决您的问题,但我会从那里开始。
Breck的