如何计算文本类别之间的相关性? 例如,我有 3 个文本:
texts = ["Chennai Super Kings won the final 2018 IPL", "Chennai Super Kings Crowned IPL 2018 Champions",
"Chennai super kings returns"]
subjects = ["final", "Crowned",
"returns"]
因此,每个文本都有一个标签(类(。因此,它接近文本分类问题。但我需要计算"差异"的度量。
我可以计算 Tfidf 并得到矩阵:
from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd
texts = ["Chennai Super Kings won the final 2018 IPL", "Chennai Super Kings Crowned IPL 2018 Champions",
"Chennai super kings returns"]
tfidf = TfidfVectorizer()
features = tfidf.fit_transform(texts)
res = pd.DataFrame(features.todense(), columns=tfidf.get_feature_names())
2018 champions chennai crowned final ipl kings returns super the won
"final" 0.333407445657484 0.0 0.2589206239570202 0.0 0.4383907244416506 0.333407445657484 0.2589206239570202 0.0 0.2589206239570202 0.4383907244416506 0.4383907244416506
"Crowned" 0.37095371207541605 0.4877595527309446 0.28807864923451976 0.4877595527309446 0.0 0.37095371207541605 0.28807864923451976 0.0 0.28807864923451976 0.0 0.0
"returns" 0.0 0.0 0.4128585720620119 0.0 0.0 0.0 0.4128585720620119 0.6990303272568005 0.4128585720620119 0.0 0.0
我需要得到一个分数,它会告诉我: - 主题"最终"与"加冕"有多接近。
我应该使用什么指标?
///假设您有 5 个文本:
放学后,卡迈勒把女孩们带到了老房子。它很旧,也很脏。到处都是垃圾。窗户被打破,墙壁潮湿。太可怕了。(1) 艾米不喜欢。墙上有僵尸和骷髅的画作。"我们将为学校艺术比赛拍照,"卡迈勒说。艾米不喜欢,但她什么也没说。(2) "格兰特在哪儿?"塔拉问。"呃,他买更多的油漆。"卡迈勒赶紧移开视线。塔拉觉得他看起来很可疑。"天快黑了,我们现在可以走了吗?"艾米说。她不喜欢僵尸。(3) 然后,他们听到房间角落的橱柜传来一声巨响。"那是什么?"艾米吓坏了。"我什么都没听到,"卡迈勒说。有什么东西发出奇怪的声音。(4) "你什么意思?那里什么都没有!卡迈勒努力不笑。突然,门砰的一声打开了,一只僵尸出现了,大喊大叫,动了动手臂。艾米尖叫着捂住了眼睛。 (五(
每个文本都有标签:
第一条短信 - 学校,房子,可怕 第二个文本 - 僵尸,油漆 第三文本 - 僵尸,黑暗,油漆 第四个文本 - 噪音,害怕 第五个文本 - 僵尸,尖叫
第一个任务是找到文本之间的相关性。似乎@MarkH已经给了我正确的方向(余弦相似性( 第二个任务是找到标签之间的相关性。你看几乎所有的标签都是"僵尸"。此外,第 3 句和第 2 句有 2 个相等的标签:"僵尸,油漆"。 假设我们有 10000 个文本。那么这些标签描述同样的事情的可能性有多大,我们可以删除标签(油漆(之一并使用onle 1(僵尸(?所以,这就像是对变化的贡献。 如果我们去除一些标签,它会影响太多吗?我们可以删除/单位一些标签吗?
我认为您可以使用余弦相似性,这在此类任务中很常见。
from sklearn.metrics.pairwise import cosine_similarity
msgs_CosSim = pd.DataFrame(cosine_similarity(features, features))
相关性的概念找到了特征之间的接近度,但你说你想为没有意义的类标签这样做,因为如果特征相同,那么它们必须具有相同的类标签。请分享您试图解决的最终问题。