1

因此,我正处于工作项目(软件支持)的“设计”阶段,并希望在深入森林之前收集社区的意见、想法等。最终,我正在构建一个与 Twitter 的 Trending 页面非常相似的网页。这是我将如何使用它的高级概述:

我们的支持代表将在客户来电时为他们创建工单,工单的文本被实时捕获并发送到另一个我称之为“Hoss”的服务器。一旦 Hoss 收到数据,我们就开始解析文本。这里的主要兴趣是一个文本区域,支持代表在其中键入客户遇到的问题的简短摘要。我想获取这些信息,对其进行解析并将其显示在列出“趋势”主题的网页上,以便管理人员可以实时了解客户打电话的内容。

现在有趣的东西和我想得到一些方向的地方......对于这个例子。假设摘要文本区域包含以下内容:

“客户在尝试安装更新时遇到错误,“update.exe 中的错误”

既然 Hoss 服务器有了这个文本,它就可以开始解析它了。我有兴趣为趋势提要捕获关键字。在此示例中,“错误”、“安装”、“update.exe”。但是,捕获/跟踪一起出现的关键字也很重要。意思是,我可以很容易地捕捉到“错误”和“安装”,并且基本上可以计算这些词在任何给定时间内出现了多少次,但它们单独提供的洞察力不如它们一起提供的洞察力。

同样,我处于该项目的早期阶段,这就是为什么我没有附加代码示例等。此时没有任何限制!先感谢您!在花了很多时间阅读帖子之后,我了解到了这个社区的力量,它是一个无价的资源!!!

4

3 回答 3

1

这涉及到自然语言处理,这本身就是一个相当大的研究领域。

一些想法应该让你朝着正确的方向前进。

  1. 定义停止列表。这些词将被忽略。它们应该包括没有意义的词(is、of、a、when)。以及因为很可能出现在很多票(客户)中而没有什么意义的词。

  2. 定义同义词,意思相同的不同词。在对字符串进行标记时,您可以用根词替换匹配词以减少差异。

  3. 索引 1-3 个关键字词组中的关键字。然后总结并记录这些事件。

随着更多数据可用,您可能会不断调整这点。

于 2013-03-11T15:32:30.347 回答
0

我建议使用像 Carrot2 ( http://project.carrot2.org/ ) 这样的集群服务器,然后将票证内容或主题作为文档传递。您可以选择要使用的算法。集群启动后,您可以通过集群计数获得热门话题。Carrot2 是 java,但有一些有用的 php 示例(用于发送文档和检索结果和计数)可用于您可以试验的代码。它还有一个 REST api,您可以将其与 php curl 或 guzzle 一起使用(使 curl 吸得更少)。

于 2013-03-11T15:37:02.237 回答
0

好吧,我建议您构建一组您想要注意的常用短语,每次将提要发送到 Hoss 时,在您的解析过程中,preg_match()对提要执行操作或计算您的短语出现并存储的次数一个分贝。

Say you have a array of ten words that you are watching out for $support_words=array('word1','word2','word3', ...'wordn'); ,count the number of array items and do a loop to check the count. eg. foreach($support_words as $words){$count = substr_count($feed_from_customer_reps, $word); // insert the word and count into the database here. or better still fetch word if exists from database, get the current count and add the new count to it. // }

This is an untested code infact its more of a psuedocode that an actual program code. I hope you get the logic tho...let me know if yo not clear.

resources:php substr_count manual

于 2013-03-11T15:38:37.467 回答