Вычисление расстояния редактирования между значениями столбца данных в панде и заданной строкой

У меня есть один столбец в кадре данных 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')
Другие вопросы по тегам