Использование предположения_language для чтения 30000 твитов - PullRequest
0 голосов
/ 20 марта 2020

Я использую guess_language , чтобы определить язык твитов для школьного проекта. Я использовал pandas, чтобы прочитать файл .csv. У меня около 30000 строк.

Однако моя проблема в том, что язык догадок может читать только один твит за раз.

guess_language ("Главный рассказ: Массовый кризис психического здоровья")

'en'

Я очень новичок в python и пытаюсь вычислите l oop, и если заявления для этого уже почти сутки, и они продолжают просто возвращать один твит.

Спасибо и извинения, если вопрос хромает.


Я использовал код, предложенный ниже Каримом.

изого: предположим, что импорт импортирован. Предположим, что это так .df_ nogupdf [nodupdf ['текст']. 1021 * Он работал для маленького файла (100 csv), но когда я применил его к большему. Это дало мне эту ошибку.

TypeError Traceback (последний последний вызов) в 9 10 для чанка в noeng: ---> 11 чанк ['text']. Apply (guess_language) == 'en'

~ \ Anaconda3 \ lib \ site-packages \ pandas \ core \ series.py в apply (self, fun c, convert_dtype, args, ** kwds) 4040 else: 4041 values ​​= self.astype ( object) .values ​​-> 4042 mapped = lib.map_infer (значения, f, convert = convert_dtype) 4043 4044, если len (сопоставленный) и isinstance (сопоставленный [0], ряд):

pandas_libs \ lib.pyx в pandas ._ libs.lib.map_infer ()

~ \ Anaconda3 \ lib \ site-packages \ guess_language__init __. py in guess_language (text, hints) 322 "" "Вернуть код языка ISO 639-1 . 323 "" "-> 324 слов = WORD_RE.findall (text [: MAX_LENGTH] .replace (" '","' ")) 325 return identifier (слова, find_runs (слова), подсказки) 326

TypeError: объект 'float' недопустим


Считая, что это ошибка памяти, я использовал чанк.

noeng = pd.read_csv (r 'C: \ Users \ jean \ nodupdf.csv', чанки ize = 10) для чанка в noeng: chunk ['text']. apply (guess_language) == 'en'

Я все еще получаю ту же ошибку.

1 Ответ

0 голосов
/ 20 марта 2020

Вы можете извлекать все и обрабатывать их в основном следующим образом:

resdf =  newdf[ newdf['text'].apply(guess_language) == 'en' ] 

файл resdf должен содержать строки оригинала, которые имеют классификацию engli sh для его твитов.

Функция apply должна применять вашу функцию guess_language к каждому твиту и возвращать значения столбцов после классификации, затем мы используем это для получения только индексов строк, которые имели en в качестве классификации.

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