Получить каждое уникальное слово в CSV-файле с токенами - PullRequest
1 голос
/ 22 сентября 2019

Вот таблица CSV В таблице CSV есть два столбца.Один - это резюме, а другой - тексты.Оба столбца были typeOfList, прежде чем я объединил их вместе, преобразовал во фрейм данных и сохранил как файл CSV.Кстати, тексты в таблице уже были очищены (убраны все метки и преобразованы в строчные буквы):

Я хочу пройтись по каждой ячейке таблицы, разбить итоги и тексты на слова и разбить каждое слово на токены.Как я могу это сделать?

Я пробовал с Python CSVader и df.apply (word_tokenize).Я пробовал также newList = set (резюме + тексты), но тогда я не смог их маркировать.Любые решения для решения проблемы, независимо от использования файла CSV, фрейма данных или списка.Заранее спасибо за помощь!

примечание: в реальной таблице более 50 000 строк.

=== некоторое обновление ==

вот код, который я пробовал,

import pandas as pd
data= pd.read_csv('test.csv')

data.head()

newTry=data.apply(lambda x: " ".join(x), axis=1)
type(newTry)

print (newTry)

import nltk

for sentence in newTry: 
    new=sentence.split() 

    print(new)
 print(set(new))

введите описание изображения здесь

Пожалуйста, обратитесь к выводу на скриншоте.В списке есть повторяющиеся слова и несколько квадратных скобок.Как я должен удалить их?Я пытался с set, но он дает только одно значение предложения.

1 Ответ

0 голосов
/ 22 сентября 2019

Вы можете использовать встроенный csv pacakge для чтения файла csv.И нлтк токенизировать слова:

from nltk.tokenize import word_tokenize
import csv

words = []

def get_data():
    with open("sample_csv.csv", "r") as records:
        for record in csv.reader(records):
            yield record

data = get_data()
next(data)  # skip header

for row in data:
    for sent in row:
        for word in word_tokenize(sent):
            if word not in words:
                words.append(word)
print(words)
...