목표 : 토큰 화 된 텍스트를 벡터화하여 구조화되지 않은 텍스트 데이터에 대한 NLP 분석을 가능하게하는 용어 문서 행렬을 만듭니다. 예측과 텍스트 분류가 분석의 큰 부분이 될 것이므로 각 텍스트에 레이블/클래스를 연관시키는 것이 중요합니다. 이를 위해 필자는 각 행이 하나의 텍스트를 나타내고 각 열이 전체 코퍼스에 나타나는 단어 중 하나를 나타내는 구조의 문서 행렬이 필요합니다. 텍스트의 클래스/레이블은 행렬의 벡터이기도합니다.Python NLP : 토큰 화 된 텍스트를 원본 구조로 다시 매핑하는 방법은 무엇입니까?
문제점 : 텍스트의 각 레코드는 목록의 항목으로 표시됩니다. 첫 번째 레코드는 목록의 첫 번째 항목이고 두 번째 레코드는 목록의 두 번째 항목입니다. 목록의 모든 레코드의 내용을 토큰 화하고 모든 단어의 거대한 목록을 생성하는 것은 쉽습니다. 내 문제는 토큰 화 후에 원래 목록 구조를 유지할 수없고 각 토큰을 원래 목록의 레코드로 매핑 할 수 없다는 것입니다. 이로 인해 벡터화가 불가능 해집니다.
는 설명하기 위해 : (두 문장으로 목록에서 세 가지 기록, 각각)
record_one = 'I like ham. I also like pineapple.'
record_two = 'I love cheese. I enjoy tomato sauce and dough too.'
record_three = 'Hence, I dig Hawaiian pizza. And beer.'
recordList = [record_one, record_two, record_three]
결과 :
['I like ham. I also like pineapple.', 'I love cheese. I enjoy tomato sauce and dough too.', 'Hence, I dig Hawaiian pizza. And beer.']
토큰 화 : 매의
from nltk.tokenize import word_tokenize
wordList= []
for r in recordList:
temp = word_tokenize(r)
for token in temp:
wordList.append(token)
결과 (하나 개의 거대한 목록 레코드 목록의 단어) :
['I', 'like', 'ham.', 'I', 'also', 'like', 'pineapple', '.', 'I', 'love', 'cheese.', 'I', 'enjoy', 'tomato', 'sauce', 'and', 'dough', 'too', '.', 'Hence', ',', 'I', 'dig', 'Hawaiian', 'pizza.', 'And', 'beer', '.']
여기에 내가 갇혀있다. 이 시점에서 벡터 라이 제이션을하면 28x18 매트릭스가되고, 필요한 것은 3x18 매트릭스입니다. 어떻게 든 각 레코드를 recordList의 레코드에 매핑하여 3x18 행렬을 제공해야하지만 어떻게해야할지 모르겠습니다. 나는 분명히 내가 빠진 것이 있다는 것을 알고있다.
저는 파이썬과 NLP에 익숙하지 않아 가능한 한 간단하게하려고 노력하고 있습니다. 즉, 목록 사용, 해당 목록에 대한 작업을위한 루프 작성 및 목록 작성을 의미합니다. 나는이 (scikit)을 할 수있는 다른 모듈과 함수가 있음을 알고 있지만 언어에 대한 나의 이해를 높이기 위해 기본적인 파이썬 데이터 구조를 사용하도록하고있다. 대단 할 기본 파이썬 데이터 구조를 사용하여 솔루션을 만드는 것이 가능하다면.
미리 감사드립니다.