Вот что мне нужно, в частности, № 3.
- Импорт помеченных данных
- Оценка слова для совпадений
- Обновление помеченных данных теми словами, которые похожи на «помеченные данные»
У меня есть набор помеченных данных (скажем, 100 строк), и я хочу обновить их автоматически, когда новое слово похоже на существующую строку (например, SimilarityScore > 75%).
Я начинаю с импорта помеченных данных в два df. Первый df (labelled_data), который я использую, чтобы вычислить и сохранить оценку сходства и два столбца (здесь я храню похожий текст и связанную оценку). Второй df (dictionary_revised) - это фрейм данных, который я хочу добавить. Вот код, который я использую для создания этих двух df.
#Read the labelled data
labelled_data = pd.read_csv('DictionaryV2.csv')
dictionary_revised = pd.read_csv('DictionaryV2.csv')
#Add two columns to labelled_data
labelled_data['SimilarText'] = ''
labelled_data['SimilarityScore'] = float()
Затем я вычисляю сходство Word A и Word B, обновляя labelled_data с SimilarTest и SimilarityScore. Работает, вот как выглядит результат:
QueryText Subjectmatter DateAdded SimilarText SimilarityScore
2 hr HR & Benefits 1/1/2020 support 0.771284
4 pay HR & Benefits 1/1/2020 check 0.829261
Далее я создал следующую переменную, чтобы возвращать только те оценки> 75%. Работает
score = labelled_data['SimilarityScore'] > 0.75
Работает, вот пример вывода
QueryText Subjectmatter DateAdded SimilarText SimilarityScore
0 store Shopping 1/1/2020 retail 0.730492
1 performance Career & Jobs 1/1/2020 connecting 0.743287
Далее я получаю текущую дату (как я хочу знать, когда вычислялся SimilarityScore)
import datetime
now = datetime.datetime.now()
Наконец, я пытаюсь добавить df dictionary_revised, используя следующее. Но это не работает. Я пробовал с «results =» и без «results =» части кода. Ни то, ни другое не работает.
for i in range(len(labelled_data[score])):
results = dictionary_revised.append({'QueryText': labelled_data['SimilarText'],
'Subjectmatter': labelled_data['Subjectmatter'],
'DateAdded': now.strftime('%Y-%m-%d')},ignore_index=True)
Есть предложения?