我有一个测试和一个训练数据集,应该用于字符串相似性测量。这里我给出了几行数据集,
Brandon Bass ||| what the hell is Brandon bass thinking ||| Brandon Bass Has 5 Personal Fouls ||| False
Sac ||| Congrats to Sac Kings fans ||| why yall forcing the kings to stay in sac town smh ||| False
Stella ||| hello Stella can you follow me please ||| STELLA DO U HATE ME ||| False
The data file has 50 entries of the form
TOPIC ||| TWEET_SENT_1 ||| TWEET_SENT_2 ||| HAVE_SIMILAR_MEANING
主题 - Twitter话题
TWEET_SENT_1 – Tweet sentence 1
TWEET_SENT_2 – Tweet sentence 2
HAVE_SIMILAR_MEANING – a binary label (True – two sentences are similar, false – two sentences are not similar) assigned by a human annotator
我们需要将数据集分成两部分:训练集(35个样本)和测试集(15个样本),并且必须使用训练集进行算法的参数调整。并使用最佳调整参数测试测试集。
如果算法是Jaccard Coefficient
我该如何执行此任务?有人可以让我知道我可以使用的方法。
答案 0 :(得分:0)
Jaccard相似度衡量两组(在您的情况下为n-gram)是如何相似的。没有"调整"在这里完成,除了你决定两个字符串是否相似的阈值。
例如,如果您有2个字符串abcde
和abdcde
,则其工作原理如下:
ngrams (n=2) : 'abcde' & 'abdcde'
ab bc cd de dc bd
A 1 1 1 1 0 0
B 1 0 1 1 1 1
J(A,B)=(A∩B)/(A∪B)
J(A,B)=(3/6)= 0.5
还有Jaccard距离捕捉两组之间的差异,并通过取one
减去Jaccard系数(在这种情况下,1 - 0.5 = 0.5
)
所以,对于你的问题,我会使用带有标签的训练集来定义你的字符串被认为相似/不相似的正确阈值。