2016-11-24 8 views
1

안녕하세요 저는 csv에 다국어 텍스트가 있습니다. 원하는 것은 언어가 추가 된 열입니다. 그래서, 다음과 같이 python에서 langdetect를 사용하는 중 오류 : "텍스트에 기능이 없습니다"

from langdetect import detect 
import csv 
with open('C:\\Users\\dell\\Downloads\\stdlang.csv') as csvinput: 
with open('C:\\Users\\dell\\Downloads\\stdlang.csv') as csvoutput: 
writer = csv.writer(csvoutput, lineterminator='\n') 
reader = csv.reader(csvinput) 

    all = [] 
    row = next(reader) 
    row.append('Lang') 
    all.append(row) 

    for row in reader: 
     row.append(detect(row[0])) 
     all.append(row) 

    writer.writerows(all) 

코딩하지만

runfile('C:/Users/dell/.spyder2-py3/temp.py', wdir='C:/Users/dell/.spyder2-py3') 
Traceback (most recent call last): 

    File "<ipython-input-25-5f98f4f8be50>", line 1, in <module> 
    runfile('C:/Users/dell/.spyder2-py3/temp.py', wdir='C:/Users/dell/.spyder2-py3') 

    File "C:\Users\dell\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile 
    execfile(filename, namespace) 

    File "C:\Users\dell\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 89, in execfile 
    exec(compile(f.read(), filename, 'exec'), namespace) 

    File "C:/Users/dell/.spyder2-py3/temp.py", line 21, in <module> 
    row.append(detect(row[0])) 

    File "C:\Users\dell\Anaconda3\lib\site-packages\langdetect\detector_factory.py", line 130, in detect 
    return detector.detect() 

    File "C:\Users\dell\Anaconda3\lib\site-packages\langdetect\detector.py", line 136, in detect 
    probabilities = self.get_probabilities() 

    File "C:\Users\dell\Anaconda3\lib\site-packages\langdetect\detector.py", line 143, in get_probabilities 
    self._detect_block() 

    File "C:\Users\dell\Anaconda3\lib\site-packages\langdetect\detector.py", line 150, in _detect_block 
    raise LangDetectException(ErrorCode.CantDetectError, 'No features in text.') 

LangDetectException을 다음과 같이 추적이 없습니다 LangDetectException: No features in text

으로 오류를 얻고있다 : 텍스트의 어떤 기능을 제공합니다.

이 내 CSV이 같은 모습입니다 1) skunkiest smokiest yummiest 변형 진통제와 분위기 리프터 2) 휴식, euphorique, surélevée, 졸음, 모으다, picotement, UNE 확대 술 드 난 드세요, soulager 라 douleur 낄낄 거림, 체격, 정신의 진정 3) Reduzierte 불안감이 에네르기 zerebrale RUHE, gehobener Stimmung, Körper Sedierung 4) Calmante은 근육 relajante, Relajación 정신적 disminución 드 욕지기 5) 重 い フ ル ー テ ィ ー な 幸 せ 非常 に 強力 な 頭 石 の バ ー ス ト

도와주세요.

+1

동일한 파일을 읽고 쓸 수 없습니다! 출력을 위해 다른 파일을 사용하십시오! –

+0

CSV의 처음 몇 줄을 포함 시켜서 살펴볼 수 있습니까? –

+1

이 오류가 발생했을 때'row [0]'의 내용은 무엇입니까? –

답변

0

당신은 오류 던지고 파일에있는 라인을 감지하기 위해이 같은 것을 사용할 수 있습니다

for row in reader: 
    try: 
     language = detect(row[0]) 
    except: 
     language = "error" 
     print("This row throws and error:", row[0]) 
    row.append(language) 
    all.append(row) 

당신이 보게 될 것은 아마 重 い フ ル ー テ ィ ー な 幸 せ 非常 に 強力 "에 실패입니다な 頭 石 の バ スト ". 내 생각 엔 detect()은 그 행에서 분석 할 문자를 '식별'할 수 없다는 것이 오류의 의미입니다.

input is only a URL과 같은 다른 이유도이 오류의 원인입니다.