SpaCy сходство на листе статей - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть лист Excel с 400 статьями, импортированными из разных источников новостей, многие из которых являются дубликатами, поэтому я решил применить анализ текста для фильтрации уникальных. Теперь некоторые статьи идентичны, а другие могут содержать одинаковые темы (и их следует считать схожими, следовательно, дубликатами). Сначала я создал для l oop проверку идентичных заголовков и ссылок и затем удалил дубликат, чтобы проверить сходство, используя Функция сходства SpaCy, так как я запускаю приведенный ниже код на моем ноутбуке Jupyter, иногда занимает много времени, иногда он дает результаты, и иногда я думаю, есть ли более разумный подход, если есть более быстрый способ запустить это (в настоящее время использующий мой localhost) но моя машина довольно быстрая

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

Я очень новичок в НЛП / Анализ текста .. Любая помощь или предложение будет оценено

import pandas as pd
import spacy
import en_core_web_lg
nlp = en_core_web_lg.load()

data = pd.read_excel("") # file dir

for row in data.iterrows():  ## checks identical titles & links ; then remove duplicates instantly in each iteration
    current = row
    for sec_row in data.iterrows():
        temp = sec_row
        if (temp[1]['TITLE'] == current[1]['TITLE']) or (temp[1]['LINK'] == current[1]['LINK']):
            if(temp[1]['ID']!=current[1]['ID']):
                tempid = temp[1]['ID']
                data = data[data.ID != tempid]

for row in data.iterrows():  ## checks similarity of contents
    x = nlp(str(row[1]['SUMMARY']))
    for sec_row in data.iterrows():
        y = nlp(str(sec_row[1]['SUMMARY']))
        yid = sec_row[1]['ID']        
        if (row[1]['ID'] == sec_row[1]['ID']) :
            continue
        if(x.similarity(y)>=0.98):
            data = data[data.ID != yid]
...