文档章节

文本相似度计算

Harry_sir
 Harry_sir
发布于 2017/06/29 17:02
字数 329
阅读 83
收藏 0

本文所讲文本相似,以每个句话作为最小单位,进行字符串匹配。首先找到两篇文本相同的句子simstr,依据simstr的长度与两篇文档length进行比值计算。

另外,若更深度进行计算,可对两篇文档的每段话进行分词后,做相似度计算(个人认为使用余弦相似较好),做相似度值大于阈值则认为两篇文档的这段话是相同的的,加入到simstr中。

代码如下:

/**
 * 文本相似:比较两个文本的每一句话,找出两个文本的交集句子。计算交集句长与两个文本长度的比值。若交集占任意一个文本的比例大于阈值, 则认为两篇文档相似。
 */
public class TextSimilar {

    // 默认为若两篇文档的交集长度占任意一篇文档长度的一半,则认为两篇文档是相似的。
    public void textSim(String content1, double simvalue) throws IOException {
        String[] resultName = GetFile.txtName(PathConfig.OriginalPath);
        ReadDocsTextSim rd = new ReadDocsTextSim();
        MixSenTextSim ms = new MixSenTextSim();
        double tempnum;
        for (int i = 0; i < resultName.length; i++) {
            String content2 = rd.readDocs(resultName[i]);
            int simstrlen = ms.simSentence(content1, content2);
            String temcontent1 = content1.replaceAll("[\\pP\\pS\\pZ]", "");
            content2 = content2.replaceAll("[\\pP\\pS\\pZ]", "");
            double num1 = (double) simstrlen / temcontent1.length();
            double num2 = (double) simstrlen / content2.length();
            if (num1 >= num2) {
                tempnum = num1;
            } else {
                tempnum = num2;
            }
            if (tempnum > 0.5) {

                System.err.println(resultName[i] + ":" + tempnum);
            }
        }
    }
}

© 著作权归作者所有

Harry_sir
粉丝 16
博文 80
码字总数 48004
作品 0
朝阳
其他
私信 提问
计算两个字符串相(或句子)似度的方法

主要方法有:编辑距离、余弦相似度、模糊相似度百分比 1 编辑距离 编辑距离(Levenshtein距离)详解(附python实现) 使用Python计算文本相似性之编辑距离 2 余弦相似度 余弦计算相似度度量 ...

致Great
2018/05/11
0
0
中文主题建模工具包--Familia

Familia 开源项目包含文档主题推断工具、语义匹配计算工具以及基于工业级语料训练的三种主题模型:Latent Dirichlet Allocation(LDA)、SentenceLDA 和Topical Word Embedding(TWE)。 支持用户...

匿名
2017/07/18
2.2K
1
python文本相似度计算

步骤 分词、去停用词 词袋模型向量化文本 TF-IDF模型向量化文本 LSI模型向量化文本 计算相似度 理论知识 两篇中文文本,如何计算相似度?相似度是数学上的概念,自然语言肯定无法完成,所有要...

lyy0905
2017/04/28
0
0
主题模型 Python 工具包--Gensim

Gensim是一个相当专业的主题模型Python工具包。在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此衡量评论的客观性。评论和商品描述的相似度越高,说...

匿名
2017/02/22
3.6K
0
PostgreSQL 相似搜索插件介绍大汇总 (cube,rum,pg_trgm,smlar,imgsmlr,pg_similarity) (rum,gin,gist)

标签 PostgreSQL , cube , rum , pgtrgm , smlar , imgsmlr , pgsimilarity , gin , gist , 倒排 , 相似 , 向量 , 特征 , 图像 , 文本 , 字符串 , 全文检索 背景 在搜索业务场景中,相似搜索...

德哥
04/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Handler简解

Handler 这里简化一下代码 以便理解 Handler不一定要在主线程建 但如Handler handler = new Handler(); 会使用当前的Looper的, 由于要更新UI 所以最好在主线程 new Handler() { mLooper = Lo...

shzwork
18分钟前
2
0
h5获取摄像头拍照功能

完整代码展示: <!DOCTYPE html> <head> <title>HTML5 GetUserMedia Demo</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum......

诗书易经
20分钟前
2
0
正向代理和反向代理

文章来源 运维公会:正向代理和反向代理 1、正向代理 (1)服务对象不同 正向代理服务器的服务对象是客户端,可以将客户端和代理服务器看作一个整体。 (2)配置方法不同 需要在客户端配置代...

运维团
37分钟前
3
0
5个避免意外论文重复率高的方法

即使你不是故意抄袭,但你可能在无意中抄袭了别人的论文, 这个叫做意外抄袭,它可能正发生在你身上,如果你不熟悉学术 道德规范,这里将告诉你5个基本的方法来避免意外抄袭。 Tip1 熟悉其他...

论文辅导员
38分钟前
3
0
Maven通过profiles标签读取不同的配置

<profiles> <profile> <id>dev</id> <properties> <profiles.active>dev</profiles.active> </properties> ......

时刻在奔跑
44分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部