#python #pandas #dataframe #nlp #nltk
Вопрос:
У меня есть набор данных с именем news_collection.csv, в котором есть новости, и я изо всех сил пытался заменить слова.
def similarity():
tweets = pd.read_csv(r'news_collection.csv')
df = pd.DataFrame(tweets, columns=['created_at', 'text'])
df['created_at'] = pd.to_datetime(df['created_at'])
df['text'] = df['text'].apply(lambda x: str(x))
df["text"] = df["text"].apply(lambda x: replacesynonyms(x))
return df
def replacesynonyms(text):
file = open('syno.txt', 'r', encoding="utf8")
//code to be added
Может ли кто-нибудь помочь решить этот алгоритм?
Ответ №1:
Попробуй это:
def similarity():
tweets = pd.read_csv(r'news_collection.csv')
df = pd.DataFrame(tweets, columns=['created_at', 'text'])
df['created_at'] = pd.to_datetime(df['created_at'])
df['text'] = df['text'].apply(lambda x: str(x))
df["text"] = df["text"].apply(lambda x: replacesynonyms(x))
return df
def create_sets():
lists_sets = []
file = open('syno.txt', 'r', encoding="utf8")
lines = file.readlines()
for line in lines:
s = set()
words = line.split(',')
for word in words:
s.add(word.strip())
lists_sets.append(s)
return lists_sets
def create_syn_list():
first_syn_name = []
file = open('syno.txt', 'r', encoding="utf8")
lines = file.readlines()
for line in lines:
first_syn_name.append(line.split(',')[0].strip())
return first_syn_name
lists_sets = create_sets()
first_syn_list = create_syn_list()
def replacesynonyms(text):
words = text.split()
new_sentence_l = []
for word in words:
to_add = True
for idx, syn_set in enumerate(lists_sets):
if word in syn_set:
new_sentence_l.append(first_syn_list[idx])
to_add = False
break
if to_add:
new_sentence_l.append(word)
return ' '.join(new_sentence_l)
df = similarity()
sen = list(df['text'])
for i in sen:
print(i)
Комментарии:
1. пожалуйста, примите и озвучьте мой ответ, если это полезно
2. Я пока не могу проголосовать, потому что я новый пользователь. Я внес некоторые изменения, и это хорошо сработало