Вычисление расстояния редактирования между значениями столбца данных в панде и заданной строкой - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть один столбец в кадре данных 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?"

Какова моя цель - получить оценку сходства (я все еще решаю, какаяМетрика, которую я использую (Левенштейн против Жакара или Косинуса), но это не мой главный вопрос, чтобы получить оценку сходства между значением каждого кадра данных pandas и фиксированным значением строки, а затем, вероятно, просто отсортировать их по порядку.

Здеськод, который я написал:

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 Ответ

0 голосов
/ 20 декабря 2018

Слушай, я думаю, что проблема в загрузке пакетов NLTK.Во-первых, убедитесь, что ваше интернет-соединение работает и стабильно.Затем откройте терминал и напишите следующие команды:

$ python
>>> import nltk
>>> nltk.download('popular')

Это откроет оболочку python и загрузит популярные пакеты в NTLK.Это будет выглядеть так: enter image description here Теперь запустите код после удаления:

nltk.download()
nltk.download('stopwords')
nltk.download('wordnet')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...