怎么样根据文本相似度计算开发包?

怎么样根据文本相似度计算开发包?

最近有一个想法,想用python实现一个小型开发包,以方便的实现并测试各种文本相似度计算算法,输入之一是一个精心建立的小型测试文本语料库,之二则是检索请求文本,输出则可以依据配置的相似度计算方法输出排好序的测试文本序列。因为相似度计算并排序是搜索引擎的核心之一,而对于一个成熟的搜索体系去实验各种想法是很不方便的,所以很想有这样一个工具。

大体上可以分为这样几个模块:

  • 统一数据管理模块:管理原始文本数据,主要负责读写以及编码转换工作。
  • 索引建立模块:对统一数据管理模块输出的unicode编码的文本流进行建立索引,并写入索引文件中。建立索引的算法接口应该是方便扩展实现的。
  • 搜索排序模块:对检索请求和索引文件中的数据进行匹配,计算相似度并排序。相似度计算算法是本开发包对外的主要扩展接口。(希望是一经调整相似度计算算法,同样检索请求的检索效果能够快速得到反映,这样就非常方便观察、设计、测试各种计算方法)
  • 检索与展示命令解析模块:这是本开发包运行时的用户界面,主要采取命令行方式,以方便检索测试和调整排序、展示格式。

这样一个小型工具,其可用性一方面取决于其扩展方便程度,另一方面取决于小型测试语料库的建立,这样一个语料库要适应各种索引形式的需要,因为这里重点不是对这些文本做自然语言处理,所以诸如分词、短语识别与结构分析等,语料中应该由专家进行标注,对这样一个熟语料库,同时要注意其类型或题材的分布,并设计好语料库的结构层次。如此,这样一个统一的语料库,加上这样一个软件工具开发包,想来对于我们这个行业的相关研究或技术人员一定很有用途,很有意义。

首先从python的文件操作、编码转换开始做起。有兴趣的朋友可以联系偶,进行讨论哦。(另外,渴望认识熟悉python的朋友,这样工作会快很多呢)