shibing624/similarity

similarity: Text similarity calculation Toolkit for Java. 文本相似度计算工具包,java编写,可用于文本相似度计算、情感分析等任务,开箱即用。

解决的问题

本项目提供了一个基于 Java 的工具包,用于计算不同粒度(从单个单词到完整段落)的文本字符串之间的相似度得分。它还提供了情感分析和使用词嵌入寻找近似词的工具。

工作原理

该库实现了按文本长度分类的多种算法:

  • 单词:使用 Cilin 编码、中文语义方法和编辑距离等方法。
  • 短语:根据共享字符及其位置计算相似度。
  • 句子:采用形态相似度(结合词性及语序)和各种编辑距离算法。
  • 段落:利用余弦相似度(结合 TF-IDF 和词性权重)、Jaccard、欧氏距离以及带有汉明距离的 SimHash。
  • 情感:基于 HowNet 语义原语树分析词汇极性。
  • 近似词:集成 Word2vec 进行基于向量的同义词推荐。

适用对象

需要将文本相似度测量、情感分析或同义词发现集成到其应用程序中,而无需从头实现这些 NLP 算法的 Java 开发人员。

亮点

  • 多粒度支持:为单词、短语、句子和段落提供专用算法。
  • 低耦合:内部模块设计为松散耦合,以便于维护。
  • 延迟加载:仅在需要时加载模型以提高性能。
  • 可定制:支持在自定义语料库上进行 Word2vec 训练。
  • 全面的距离度量:包括用于段落比较的 Jaro-Winkler、Manhattan 和 Sørensen–Dice 系数。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目