1

데이터 세트를 통해 스탠포드 코어 NLP를 사용하려고했지만 찾을 수없는 특정 인덱스에서 멈 춥니 다. Kaggle에서 데이터 세트를 사용할 수 있습니다. https://www.kaggle.com/PromptCloudHQ/amazon-reviews-unlocked-mobile-phones/data전체 데이터 세트에 스탠포드 코어 NLP 어노 테이터를 실행할 수 없습니다.

개별 문장의 평균 감정 값을 사용하여 단락의 정서를 출력하는 기능입니다.

import json 
 
def funcSENT(paragraph): 
 
    
 
    
 
    all_scores = [] 
 
    
 
    output = nlp.annotate(paragraph, properties={ 
 
     "annotators": "tokenize,ssplit,parse,sentiment", 
 
     "outputFormat": "json", 
 
     # Only split the sentence at End Of Line. We assume that this method only takes in one single sentence. 
 
     #"ssplit.eolonly": "true", 
 
     # Setting enforceRequirements to skip some annotators and make the process faster 
 
     "enforceRequirements": "false" 
 
    }) 
 
    
 
    
 
    all_scores = [] 
 
    for i in range(0,len(output['sentences'])): 
 
     all_scores.append((int(json.loads(output['sentences'][i]['sentimentValue']))+1)) 
 
     
 

 
    final_score = sum(all_scores)/len(all_scores) 
 
    
 
    return round(final_score) 
 

지금이 코드를 사용하여 '리뷰'열에서 모든 검토를 위해이 코드를 실행합니다.

import pandas as pd 
 
data_file = 'C:\\Users\\SONY\\Downloads\\Amazon_Unlocked_Mobile.csv' 
 
data = pd.read_csv(data_file) 
 

 
from pandas import * 
 
i = 0 
 
my_reviews = data['Reviews'].tolist() 
 
senti = [] 
 
while(i<data.shape[0]): 
 
    senti.append(funcSENT(my_reviews[i])) 
 
    i=i+1

는하지만 어떻게 든이 오류가 나는 문제를 찾을 수 없습니다입니다. 그 많은 시간이 지금 친절하게 도와줍니다.

[1]: https://i.stack.imgur.com/qFbCl.jpg 

이 오류를 방지하려면 어떻게해야합니까?

답변

0

필자는 nlp = StanfordCoreNLP (...) 및 실행중인 StanfordCoreNLP 서버에서 pycorenlp를 사용하고 있음을 이해합니다. Kaggle 계정이 필요하므로 사용중인 데이터를 확인하지 않습니다. 같은 설정하지만 다른 단락으로 실행

인쇄는 "출력"혼자 경우, 자바 서버에서 오류를 보여주고 있음을 보여줍니다

java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Input word not tagged 

내 생각에는 품사가 없기 때문에 어노 테이터의 경우 서버는 파싱을 수행 할 수 없습니다. 구문 분석이나 depparse를 사용할 때마다 "pos"주석 자도 필요하다고 생각합니다.

정서적 주석 작성자가 필요한 것이 확실하지 않지만 좋은 표정 결과를 얻으려면 "보조 정리"와 같은 다른 주석자를 필요로 할 수 있습니다.

출력 자체를 인쇄하십시오. 동일한 자바 오류가 발생하면 "pos"주석자를 추가하여 예상 json이 있는지 확인하십시오. 그렇지 않으면 간단한 데이터 세트를 사용하여 간단한 예제를 작성하고 질문에 주석을 달거나 조정하십시오.

+0

'pos'주석자를 추가했지만 여전히 "TypeError : 문자열 인덱스가 정수 여야 함"오류가 발생했습니다. 그것은 약간의 인덱스를 실행하지만 다음이 오류를 제공합니다. –

+0

계산 한 후 인쇄 (출력)하면 어떻게됩니까? –

+0

코드에 따르면, 출력 [ 'Sentiment'] [i] [ 'sentimentValue'] 을 사용합니다. 그러나 개별 반복을 요청하는 경우 각 반복에 대한 인쇄 출력은 각 문장에 대한 정보 사전을 인쇄합니다. –

관련 문제