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 係數。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案