一键分析文本相似度!我用Streamlit开发了一个智能文本对比神器,于大爷.在线工具集

于大爷.在线工具集,文本相似性分析

在线秒算 | 多维分析 | 精准对比 | 支持中英文

一、痛点暴击:你是否遇到过这些困扰?

二、解决方案:智能文本相似度分析工具

👉 在线体验:https://yudaye.site/txt_compare
(免登录,电脑手机都能用)

2.1 核心特性

2.2 技术实现

整个工具基于Streamlit + textdistance库开发,核心代码非常简洁:

import streamlit as st
import textdistance

# 1. 界面布局
col1, col2 = st.columns(2)
with col1:
    text1 = st.text_area("📝 文本 1", height=150)
with col2:
    text2 = st.text_area("📝 文本 2", height=150)

# 2. 相似度计算
if st.button("🔍 开始分析"):
    # Levenshtein距离
    lev = textdistance.levenshtein(text1, text2)
    st.metric("Levenshtein距离", f"{lev:.4f}", "越小越相似")
    
    # Cosine相似度
    cos = textdistance.cosine(text1, text2)
    st.metric("Cosine相似度", f"{cos:.4f}", "越大越相似")
    
    # 更多算法...

2.3 完整实现

这里展示一些关键代码片段:

  1. 页面样式设置:
st.markdown("""
    <style>
    .stButton > button {
        width: 100%;
        padding: 12px 20px;
        border-radius: 8px;
        background: linear-gradient(to right, #9b59b6, #b39ddb);
        color: white;
        font-weight: 600;
        transition: all 0.3s ease;
    }
    
    .stButton > button:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 8px rgba(52, 152, 219, 0.3);
    }
    </style>
""", unsafe_allow_html=True)
  1. 多算法实现:
# 使用tabs组织结果展示
tab1, tab2 = st.tabs(["📊 计算结果", "ℹ️ 详细说明"])

with tab1:
    # 展示距离计算结果
    metric_col1, metric_col2, metric_col3 = st.columns(3)
    
    with metric_col1:
        lev = textdistance.levenshtein(text1, text2)
        st.metric(
            label="Levenshtein距离",
            value=f"{lev:.4f}",
            delta="越小越相似"
        )
    
    with metric_col2:
        ham = textdistance.hamming(text1, text2)
        st.metric(
            label="Hamming距离", 
            value=f"{ham:.4f}",
            delta="越小越相似"
        )
  1. 算法说明展示:
with tab2:
    st.markdown("""
    ### 距离指标说明
    - **Levenshtein距离**: 计算将一个字符串转换为另一个字符串所需的最小编辑次数
    - **Hamming距离**: 计算两个等长字符串对应位置上不同字符的数量
    - **Cosine相似度**: 将文本转换为向量,计算向量夹角的余弦值
    """)

三、应用场景

  1. 📚 论文查重初筛
  2. 📝 文案相似度对比
  3. 🔍 简单抄袭检测
  4. 📊 文本差异分析
  5. 🎯 关键词匹配度检查

四、使用效果

实际使用效果非常直观:

  1. 输入两段文本
  2. 点击"开始分析"
  3. 立即获得6种算法的相似度分析结果
  4. 查看详细说明,选择最适合的指标

五、项目亮点

  1. 🎨 界面设计

    • 简洁直观的双栏布局
    • 渐变色按钮增强交互体验
    • 结果展示清晰明了
  2. 🛠 技术特色

    • 使用textdistance库,支持多种算法
    • Streamlit实现快速部署
    • 优化的用户交互体验
  3. 💡 创新点

    • 多算法对比分析
    • 详细的算法说明
    • 精美的可视化展示

六、未来规划

  1. 📈 支持更多相似度算法
  2. 🎯 添加批量文本对比功能
  3. 📊 增加差异可视化展示
  4. 🚀 优化大文本处理性能

八、作者信息

如果这个工具对你有帮助,欢迎点赞转发!也欢迎在评论区提出你的建议!