LSH - 带状疱疹的二进制矩阵表示
LSH - Binary matrix representation from shingles
我有一个很大的新闻文章数据集,准确地说是 48000 篇。我已经为 n = 3
中的每篇文章制作了 ngram。
我的 ngram 看起来像这样:
[[(tikro, enters, into), (enter, into, research), (into, research, and),...]]
现在我需要为每个木瓦和物品制作一个二进制矩阵:
article1 article2 article3
shingle1 1 0 0
shingle2 1 0 1
shingle3 0 1 0
起初我将所有带状疱疹都放在一个列表中。在那之后,我试过这个来检查它是否有效。
for art in article:
for sh in ngrams:
if sh in art:
print('found')
因为一个是设置的,另一个是字符串,所以它不起作用。有什么建议,如何让它发挥作用?或任何其他方法?
谢谢
在搜索文章中的 shingles 之前,您可以使用 join
将 shingle 的单词连接成一个三词短语。
例如,我们有这样的 ngram:
ngrams = [('tikro', 'enters', 'into'),
('enter', 'into', 'research'),
('into', 'research', 'and')]
然后我们将每个 shingle 的单词连接成短语:
shingles = [' '.join(x) for x in ngrams]
转换后 shingles
类似于:
['tikro enters into',
'enter into research',
'into research and']
哪些是您可以在文章中搜索的字符串。
我有一个很大的新闻文章数据集,准确地说是 48000 篇。我已经为 n = 3
中的每篇文章制作了 ngram。
我的 ngram 看起来像这样:
[[(tikro, enters, into), (enter, into, research), (into, research, and),...]]
现在我需要为每个木瓦和物品制作一个二进制矩阵:
article1 article2 article3
shingle1 1 0 0
shingle2 1 0 1
shingle3 0 1 0
起初我将所有带状疱疹都放在一个列表中。在那之后,我试过这个来检查它是否有效。
for art in article:
for sh in ngrams:
if sh in art:
print('found')
因为一个是设置的,另一个是字符串,所以它不起作用。有什么建议,如何让它发挥作用?或任何其他方法?
谢谢
在搜索文章中的 shingles 之前,您可以使用 join
将 shingle 的单词连接成一个三词短语。
例如,我们有这样的 ngram:
ngrams = [('tikro', 'enters', 'into'),
('enter', 'into', 'research'),
('into', 'research', 'and')]
然后我们将每个 shingle 的单词连接成短语:
shingles = [' '.join(x) for x in ngrams]
转换后 shingles
类似于:
['tikro enters into',
'enter into research',
'into research and']
哪些是您可以在文章中搜索的字符串。