2017-11-11 23 views
0

저는 파이썬에서 초보자입니다. 파일에서 트위터 데이터를 토큰 화하는 방법을 알고 싶습니다.파이썬 : 파일에서 토큰을 만드는 방법?

내 코드는 다음과 같습니다

with codecs.open('example.csv', 'r',"utf-8") as f: 
    for line in f: 
     tweet = f.readlines() 
     tokens = word_tokenize(tweet["text"]) 
     print(tokens) 

그러나 오류 :

--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-15-98b6d77c2fcf> in <module>() 
     2  for line in f: 
     3   tweet = f.readlines() 
----> 4   tokens = word_tokenize(tweet["text"]) 
     5   print(tokens) 

TypeError: list indices must be integers or slices, not str 

가 어떻게 내 코드를 향상시킬 수 있습니까?

+0

무엇이'word_tokenize'입니까? 또한'tweet'는'list'입니다. 목록 항목을 액세스하기 위해 인덱스를 사용하여 참조해야합니다 (오류가 표시하는 것처럼) – Arman

+0

나는 nltk.word_tokenize를 가정합니까? – coffeemakr

+0

word_tokenize from code : pythainlp.tokenize 가져 오기 word_tokenize 및 example.csv의 텍스트를 –

답변

0

는 업데이트 :

확인, 첫 번째 것들 먼저 ... 나는 내 테스트를하기 위해 this (트윗과 sample.csv) 파일을 사용했다. 이 테스트 스크린 샷에 따라 작동하고

import codecs 
import nltk 

nltk.download('punkt') 

with codecs.open('example.csv', 'r') as f: 
    for line in f: 
     tweet = f.readlines() 

     tokenized_sents = [nltk.word_tokenize(i) for i in tweet] 
     for i in tokenized_sents: 
      print(i) 

:

enter image description here


흠 .... 당신이 문자열을 전달하는 여기에 귀하의 예에 따라, 간단한 코드입니다 짹짹 [ "텍스트"]) 하나의 인수를 정수로 받아들이는 word_tokenize.

with codecs.open('example.csv', 'r',"utf-8") as f: 
    for line in f: 
     tweet = f.readlines() 

     tokenized_sents = [word_tokenize(i) for i in tweet] 
     for i in tokenized_sents: 
      print i 
+0

에 보내고 싶습니다. Oetoni에게 감사드립니다. 파일 "", 줄 7 print i ^ SyntaxError : 'print'를 호출 할 때 괄호가 누락되었습니다. –

+0

... 스크린 샷이있는 전체 작업 코드 :) 및 파일 – oetoni

+1

Oetoni 정말 고마워요. 그것은 작동합니다 !!!!!! 그리고 미안 해요() 내가 인쇄에 넣어 모르겠 hahahahahaaaaaaaa. –

0

같은

그것이 있어야 뭔가 당신이 선을 반복 경우 readlines 메쏘드 호출 할 필요가 없습니다 : 당신이 열 "짹짹"사용과 CSV를 읽으려면

with codecs.open('example.csv', 'r',"utf-8") as f: 
    for line in f: 
     # line is each line 

을 이 : CSV module 및에

import csv 
from nltk import word_tokenize 
with open('example.csv', 'r') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
     tweet = row["tweet"] 
     print("Tweet: %s" % tweet) 
     tokens = word_tokenize(tweet) 
     print(tokens) 

참조 파이썬 3 설명서 0.

+0

감사합니다. coffeemakr, csv 파일 이름의 "text"에 코드 열 [ "text"]에서 변경하면이 오류가 발생합니다. - -------------------------------------------------- ------------------------ KeyError 추적 (가장 최근의 마지막 통화) in () 2 명의 독자 = csv.DictReader (F) 리더 행 ----> = 4 행 트윗 [ "텍스트"] 5 인쇄 ("트윗 % S"% 짹짹) 6 토큰 = word_tokenize (트윗) KeyError를 : 'text' –

+0

이것은 DictReader가 "text"필드를 찾지 못했음을 의미합니다. 'row'를 출력하면 문제를 디버그하는 데 도움이 될 수 있습니다. 또한 CSV에 실제로 "텍스트"열이 있는지 확인하십시오. – coffeemakr

+0

감사합니다 coffeemakr. –