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 系数。
相关
- 项目
- 项目
- 项目
- 项目
- 项目