Skip to content

基于tfidf的文档关键词提取、文档相似度计算

Notifications You must be signed in to change notification settings

nameof/tfidf-similarity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tfidf-similarity

基于tfidf的文档关键词提取、文档相似度计算

理论知识

  • tf-idf是一种加权技术,用以评估一个字词对一个文件集或语料库中的其中一份文件的重要程度。
  • 字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
  • 所以对于一个语料库,可以计算得到其所有文档的关键词;基于每个文档的关键词,可以计算它们之间的相似度

使用

    mvn clean install -DskipTests
    <dependency>
        <groupId>com.nameof</groupId>
        <artifactId>tfidf-similarity</artifactId>
        <version>1.0.0</version>
    </dependency>

1.提取关键字

    TFIDFProcessor processor = new DefaultTFIDFProcessor();
    DataLoader dataLoader = new FileDataLoader(corpusDir);
    processor.keyword(docName, dataLoader).forEach(System.out::println);

2.计算文档相似度

    TFIDFProcessor processor = new DefaultTFIDFProcessor();
    DataLoader dataLoader = new FileDataLoader(corpusDir);
    System.out.println(processor.similarity(doc1Name, doc2Name, dataLoader));

3.寻找语料库中相似度排行前5的文档

    TFIDFProcessor processor = new DefaultTFIDFProcessor();
    DataLoader dataLoader = new FileDataLoader(corpusDir);
    processor.topSimilarity(5, dataLoader).forEach(System.out::println);

下面是计算三国演义top1相似度的结果

About

基于tfidf的文档关键词提取、文档相似度计算

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages