У меня есть лист 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]