LSH - двоичное матричное представление от черепицы - PullRequest
0 голосов
/ 13 марта 2019

У меня большой набор новостных статей, если быть точным, 48000.Я сделал ngrams каждой статьи, где n = 3.мои нграммы выглядят так:

[[(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')

, поскольку один установлен, а другой является строкой, он не работает.какие-нибудь предложения, как заставить это работать?или любой другой подход?

спасибо

1 Ответ

0 голосов
/ 13 марта 2019

Прежде чем искать дранку в статьях, вы можете использовать join, чтобы объединить слова гальки в фразу из 3 слов.

Например, у нас есть нграммы, такие как:

ngrams = [('tikro', 'enters', 'into'),
          ('enter', 'into', 'research'),
          ('into', 'research', 'and')]

Затем мы объединяем слова в фразы для каждой черепицы:

shingles = [' '.join(x) for x in ngrams]

После преобразования shingles выглядит примерно так:

['tikro enters into', 
 'enter into research', 
 'into research and']

, которые могут быть строкамипоиск в ваших статьях.

...