使用NLP/机器学习来教机器如何检测字符串是否是数学的


Use NLP / Machine Learning to teach a machine how to detect if a string is mathematical?

我希望能够检测字符串是否是数学的。

在数学上计算为true的字符串将是"2""42000""-10""-55.22""forty-two""fifty six""negative ninety nine""negative one point seven"

由于它不是数值和数学的,像"negative two times seven""two plus two""3 plus two""two - 1""2 ^ 7"这样复杂的东西就会通过

基本拼写数字,拼写所有格数(第一、十三、千分之一)和单词"plus""negative""positive""minus""subtracted""from""times""multiplied""by""divided""over""point""to""the""power""of""and""raised"

如果函数与这些示例不一样,那么它将返回false。

使用机器学习/NLP来做这件事合适吗?有比NLP/机器学习更好的方法吗?

是否有任何现有的脚本或函数可以做到这一点?

如果没有,我如何使用NLPTools或PHP NLP工具做到这一点?

对于这个问题,解析是比机器学习更好的工具。你所描述的是一个相对简单的算术语法,其中有一些数字别名,还有一些别名的语法。与机器学习和优化相比,标记器和一些基本的句法分析(你可以直接编码)将产生更好、更可靠的结果,计算工作量显著减少。

解析之所以足够,一个原因是你不需要像人们的名字那样经常担心拼写错误。如果你想对此感兴趣,那么就用你基于Jaro-Winkler的东西进行词汇分析,然后对你认为是你的标记进行语法分析。这仍然比机器学习便宜得多,也不那么复杂。

我对PHP了解不多,但谷歌了解,而且似乎有一些库可以帮助你。让你开始的搜索词有:token;词汇分析;语法句法;LR解析器;yacc;野牛