很复杂,或许你会看不懂,也可能会是我表达不清!不好意思,我没分,帮忙看下吧!
项目名称:英文版语音计算器(C#)复杂程度:五颗星
计算器:运算数字和运算符号(运算数字和运算符号都是英文)都是用户语音输入的,并且输入的数字和运算符号是不固定的,用户语音输入一句话,然后计算出这句话的结果。参考代码中的数字只能举的例子,用户输入的话是不固定的,数字也可能会是别的或者是更大的数字。
参考代码:
+: plus, adding, add, increase,//加法可能会出现这么种中的任一个
What does three plus five equal? (3+5) twenty-one 21 //加法运算:用户可能会说的的话
How many does three plus three equal? (3+3) // 这几种形式中的任一个
_: subtract, minus, subtraction, reduce, decrease, take away//减法可能会出现这么多种中的任一个
What does three subtracted from five equal? (5-3) //减法运算:用户可能会说的的话
How many does three subtracted from five equal? (5-3) // 这几种形式中的任一个
What does eight minus five equal?? (8-5)
How many does eight minus five equal?? (8-5)
*: time, multiply, double, triple, twice//乘法可能会出现这么多种中的任一个
What is three times five equal? (3x5) //乘法运算:用户可能会说的的话
What is three multiplied by five equal? (3x5) // 这几种形式中的任一个
How many does three multiply five equal? (3x5)
/: divide, //除法可能会出现这个
What is 5 divided 3 equals? (5/3) //除法运算:用户可能会说的的话
What does 5 divided by 3 equal? (5/3) // 这几种形式中的任一个
How many does 5 divided by 3 equal? (5/3)
诚心请教各位:如何按用户说的话计算出结果?
--------------------编程问答-------------------- 呵呵,这个要做到很精确很难,不过你可以匹配一些关键字来提取表达式,比如搜索"divided",如果存在的话,再搜索前面和后面的两个数字,计算除法,然后输出结果,
搜索关键字也可以用正则表达式来实现,如果只是这些句式的话,可以把每个句式用一个正则表达式来匹配和提取操作数和运算符,
--------------------编程问答-------------------- 直接丢给siri处理 --------------------编程问答-------------------- 345678 《===你先说这个怎么读吧?
--------------------编程问答-------------------- google“voicexml+语言浏览器+词法分析+表达式树”
综合这几个词大概可以有有个解决方案,但是难道还是不小
补充:.NET技术 , C#