Я сгенерировал облако слов из набора данных tfidf, но у меня есть разные словари в формате csv (например, медицина, аптека, патология и т. Д.), Чтобы отфильтровать этот набор данных перед созданием моего облака слов.
Мне удалось отфильтровать все наборы по каждому набору словарей, но я хочу, чтобы я мог запустить все словари без повторения кода
dictFile = open("Med.csv").read().splitlines() #read dictionary
max_dist = 2
new_keywords = [] # new dictionary
for key in keywords: #read medical data
terms = key
tf_idf = keywords[key]
print(terms, tf_idf)
min_dissim = max_dist #threshold
for words in dictFile:#iterate through dictionary
cmpFile = jellyfish.levenshtein_distance(terms, words)
#filter with dictionary
`if (cmpFile < min_dissim):`#terms within threshold
print(cmpFile,terms,words)
min_dissim = cmpFile #assigned to minimum distance i.e.< 2
print(min_dist)
if min_dissim == 0:
break
new_tf_idf = tf_idf + ((max_dist - min_dissim)/max_dist)
new_keywords.append((terms, new_tf_idf))
d = dict(new_keywords)#wordcloud
wordcloud = WordCloud(width = 800, height = 800,
background_color ='white', normalize_plurals=False, max_words = 50,max_font_size = 100).generate_from_frequencies(d)
результат этого кода создаст wordcloud с расстоянием слов в моем наборе данных, которые похожи на слова в моем медицинском словаре, но я хочу для всех слов, похожих на все словари
Заранее спасибо