当前位置:编程学习 > C#/ASP.NET >>

很复杂,或许你会看不懂,也可能会是我表达不清!不好意思,我没分,帮忙看下吧!

项目名称:英文版语音计算器(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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,