3

我在一家大型旅行社担任程序员。我很有经验,但现在我遇到了一个需要建立某种人工智能的问题。我知道这类脚本无处不在,但我似乎找不到任何有用的东西。

基本上我们正在构建一个常见问题解答脚本。我们每天都收到相同类型问题的电子邮件,所以我们想建立一个联系表格,就像我写这篇文章时一样:在右侧它显示了一些已经回答的问题与我现在正在写的有点相似。当我写这个主题时,也会发生同样的事情。

好吧,言归正传。我正在制作联系表格,但是当客户正在编写主题和/或消息时,我希望在他们编写时为他们呈现一些预定义的问答。我相信我无法使用soundex,因为常见问题解答将使用丹麦语,因此在语音上听起来不像英语。

所以..我将如何:

  • 建立数据库?我应该使用全文还是标签,并从消息中提取已知标签?
  • 构建 PHP 脚本?您认为我应该知道哪些功能?

基本上我正在研究,所以我会非常感谢简单的 SQL 查询以及为此目的设计的完整脚本!什么都有用。

4

2 回答 2

1

打算将此作为评论添加到 Zane,但它变得相当长:

根据丹麦语语法,您可能需要一些相当大的 Levenshtein 距离截止点才能找到可能的匹配项。

如果您有更多时间花在这方面,您可能希望在词边界处拆分,对单个词进行词干,然后将这些词干的数量与数据库中已有的数量进行比较。在http://pecl.php.net/package/stem似乎有一个词干库(我从未使用过它,但它似乎支持丹麦语)。

由于 pecl-stem 似乎没有我能找到的正式文档(好吧,我很好奇),所以在安装 pecl 包后你会像这样使用它:

$stem = stem($myInputWord, STEM_DANISH);

而且由于我一直在仔细阅读 PHP 手册,我不妨补充一下,对于大型应用程序(我不会针对您的情况介绍它),您可能需要查看 PHP 手册的搜索引擎部分以进行设置Solr等。但同样,在你的情况下,这可能是矫枉过正。

于 2013-03-20T10:33:09.230 回答
0

查看Levenshtein 距离

于 2013-03-20T10:23:03.833 回答