Nlp 最适合我使用的红外软件?

Nlp 最适合我使用的红外软件?,nlp,semantics,keyword,information-retrieval,stemming,Nlp,Semantics,Keyword,Information Retrieval,Stemming,我想了解人们在聊天室中聊天的内容,并执行以下信息检索: 获取关键字 忽略所有噪音词,主要保留动词和名词 对关键字执行词干分析,这样我就不会以多种形式存储相同的关键字 如果同义词关键字已存储在我的存储器中,则应使用现有同义词而不是新关键字 将处理过的关键字存储在持久性存储器中,并引用该关键字所在的聊天信息和发出该关键字的用户 有了这些经过处理的信息,我想慢慢了解人们在聊天室中谈论的内容,然后根据这些关键字自动查找相关聊天室等 我的问题是:做上述工作最好的C/C++或.NET工具是什么?我部分同意@

我想了解人们在聊天室中聊天的内容,并执行以下信息检索:

  • 获取关键字
  • 忽略所有噪音词,主要保留动词和名词
  • 对关键字执行词干分析,这样我就不会以多种形式存储相同的关键字
  • 如果同义词关键字已存储在我的存储器中,则应使用现有同义词而不是新关键字
  • 将处理过的关键字存储在持久性存储器中,并引用该关键字所在的聊天信息和发出该关键字的用户
  • 有了这些经过处理的信息,我想慢慢了解人们在聊天室中谈论的内容,然后根据这些关键字自动查找相关聊天室等


    我的问题是:做上述工作最好的C/C++或.NET工具是什么?

    我部分同意@larsmans的评论。实际上,您的问题可能确实比您发布的问题更复杂

    然而,简化这个问题,我想你的问题的答案可能是Lucene的一个实现:(Java),(C#)或(C++)

    以下是你问题中的要点:

    Lucene将通过使用字符串标记器(您可以自定义或使用自己的标记器)来处理第1点。 对于第2点,您可以使用like,这样Lucene就可以读取它不应该使用的停止词列表(“the”、“a”、“an”)。 对于第3点,您可以使用。 第4点有点棘手,但可以使用定制的。 第1点至第4点在分析/标记化阶段执行,由an负责

    关于第5点,在Lucene中,您可以使用字段存储文档。一个文档可以有任意数量和混合的字段。因此,您可以为每个聊天室创建一个单独的文档,并将其所有文本连接在一起,并使文档的另一个字段引用从中提取的聊天室。你最终会得到一堆Lucene文档。因此,您可以将当前聊天室与其他聊天室进行比较,以查看哪个聊天室与您所在的聊天室更相似

    如@larsmans所说,如果你只想用一组最好的关键词来描述聊天,那么你的需求更接近于信息提取/自动摘要/主题发现任务。但你可以分阶段


    *我引用了Java文档,但是CLucene和Lucene.Net有非常相似的API,因此找出它们之间的差异不会有太大的麻烦。

    这不是真正的信息检索,而是一项信息提取/自动摘要/主题发现任务。另外,你可能想把问题分成几个小问题,因为你要的东西可能不完整。