我希望能够检测字符串是否是数学的。
在数学上计算为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;野牛