给我一个可以分析出文本相似内容的脚本
时间: 2024-04-09 18:28:11 浏览: 13
以下是一个简单的Python脚本示例,使用余弦相似度算法来分析文本的相似度:
```python
import re
import math
from collections import Counter
def text_similarity(text1, text2):
# 将文本转换为词频向量
def get_cosine(vec1, vec2):
intersection = set(vec1.keys()) & set(vec2.keys())
numerator = sum([vec1[x] * vec2[x] for x in intersection])
sum1 = sum([vec1[x] ** 2 for x in vec1.keys()])
sum2 = sum([vec2[x] ** 2 for x in vec2.keys()])
denominator = math.sqrt(sum1) * math.sqrt(sum2)
if not denominator:
return 0.0
else:
return float(numerator) / denominator
# 文本预处理,提取词语并计算词频
def text_to_vector(text):
words = re.compile(r'\w+').findall(text)
return Counter(words)
vector1 = text_to_vector(text1.lower())
vector2 = text_to_vector(text2.lower())
cosine_similarity = get_cosine(vector1, vector2)
return cosine_similarity
# 示例用法
text1 = "地骨皮,桔梗,重楼,大力子,生麻黄,苍耳子,大贝,苦杏仁,桑柏皮,甘草"
text2 = "地骨皮,桔梗,重楼,大力子,生麻黄,苍耳子,大贝,苦杏仁,桑柏皮,甘草"
similarity = text_similarity(text1, text2)
print(f"文本相似度: {similarity}")
```
您可以将要比较的文本作为参数传递给`text_similarity`函数,并获得一个0到1之间的相似度分数。请注意,此脚本只是一个简单的示例,对于更复杂的文本相似度比较,您可能需要使用更高级的算法或工具库。