Вычисление расстояния редактирования между значениями столбца данных в панде и заданной строкой
У меня есть один столбец в кадре данных Pandas (на самом деле он довольно большой, около 1,5 миллионов строк текстовых данных), который я хочу сравнить с одной строкой. Для простой проверки / проверки работоспособности я хотел попробовать это только на первых 100 строках, чтобы понять, что выполнение не займет очень много времени. Таким образом, минимальная выборка данных выглядит так:
Text
Hello, this is Peter, what would you need me to help you with today? I need you
Good Morning, John here, are you calling regarding your cell phone bill? I am not
......
и у меня есть фиксированная строка
"Can I help you today?"
Моя цель состоит в том, чтобы получить оценку сходства (я все еще решаю, какую метрику я использую, Левенштейн против Жакара или Косинуса), но это не мой главный вопрос, чтобы получить оценку сходства между значением каждого кадра данных панды и фиксированным значением строки, и тогда, вероятно, просто отсортировать их по порядку.
Вот код, который я написал:
import nltk
nltk.download()
nltk.download('stopwords')
nltk.download('wordnet')
Levenstein = []
Counter = 0
for x in All_sentences.rows:
while Counter < 100:
distance = nltk.edit_distance(All_sentences['Text'], "what I wanted
to calling because I lost my ATM card debit card")
Levenstein.append(distance)
Counter +=1
когда я запускаю этот код, во-первых, появляется диалоговое окно с загрузчиком NLTK
[WinError 10060] A connection attempt failed because the connected party did
not properly respond after a period of time, or established connection
failed because connected host has failed to respond.
Во-вторых, я вижу сообщение, которое говорит (ниже моего кода, который работает, но не заканчивает выполнение):
showing info https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml
И я жду долго, и ничего не появляется на выходе (он все еще работает, я вижу только *, что он все еще обрабатывает).
Что это за сообщения и, что важнее всего, почему это заняло бы так много времени, если бы я делал выборочное сравнение 100 значений вместо всего набора данных?
1 ответ
Слушай, я думаю, что проблема в загрузке пакетов NLTK. Во-первых, убедитесь, что ваше интернет-соединение работает и стабильно. Затем откройте терминал и напишите следующие команды:
$ python
>>> import nltk
>>> nltk.download('popular')
Это откроет оболочку python и загрузит популярные пакеты в NTLK. Это будет выглядеть так: Теперь запустите код после удаления:
nltk.download()
nltk.download('stopwords')
nltk.download('wordnet')