用正则表达式删除句子?

时间:2012-01-19 23:41:29

标签: php regex

我正在使用PHP构建一个语音识别+处理工具,我只是遇到了一个我不太确定如何修复的问题..

基本上,如果用户打个招呼,我可以用大约30个不同问候语的列表中的随机问候语回复,然后以类似的语调对话的其余部分进行回复。

现在问题,在更复杂的句子中,用户可以说“玩猫头鹰城市的萤火虫”,或“听猫头鹰城市的萤火虫”,或“嗨,我可以听猫头鹰城市的萤火虫”可以理解的是,那些是播放音乐的要求。

问题在于,当一个句子有这么多变量时,如何测试是否存在listen,play和歌曲名称?基本上我假设我必须删除所有那些无用的单词的句子,只解释'听/玩萤火虫猫头鹰城'。

我打算使用'listen'来触发“监听”功能,该功能可运行YouTube搜索API,在新标签页中打开,或返回YouTube搜索网址,具体取决于客户端。

有没有人知道如何使用PHP的preg_match删除这样的句子?还是其他任何方式?我过去几个小时都在努力,哈哈。

干杯,非常感谢任何和所有回复:)

1 个答案:

答案 0 :(得分:2)

语言分析非常复杂,而不是regexp的东西:但首先,你需要能够识别名词,动词,形容词等“关键”词,然后分析这些词来确定意义。诸如brill parser之类的工具对第一部分有帮助。

有一个相当全面的词性分析器列表here