앙케이트 조사 데이터를 분석해 본다【제4회:감정 분석】
이번에도 이하 URL보다, 「전자판 약 수첩을 사용하고 싶은 이유」에 관한 자유 회답 데이터를 사용합니다.
「전자판 약 수첩에 관한 의식 조사」를 실시했습니다
htps //w w. 니쵸. 이. jp/코 r 포라테/네 ws 레아세/11633/
① 우선 라이브러리를 가져옵니다. 이번에는 janome을 사용합니다.
import csv
from janome.tokenizer import Tokenizer
②다음에 「일본어 평가 극성 사전」을 다운로드해, 읽어들입니다. 이것은, 어구의 판정에 사용하는 단어 사전의 것으로, 예를 들면 「성실」은 포지티브, 「약기」는 네거티브라고 하는 것처럼, 약 8,500의 표현에 대해 포지티브인지 네거티브의 연결이 되어 있습니다(아래와 같이 URL 참조).
! curl http://www.cl.ecei.tohoku.ac.jp/resources/sent_lex/pn.csv.m3.120408.trim > pn.csv
np_dic = {}
fp = open("pn.csv", "rt", encoding="utf-8")
reader = csv.reader(fp, delimiter='\t')
for i, row in enumerate(reader):
name = row[0]
result = row[1]
np_dic[name] = result
if i % 500 == 0: print(i)
③대상 데이터에 대해서 형태소 해석을 실시, 각 어구와 상기의 사전을 대조합니다. 아래의 코드 중, 「p」는 포지티브, 「n」은 네거티브, 「e」는 어느 쪽도 아닌 중립적인 어구를 가리키고 있어, 각각을 카운트해, 포지티브도와 네거티브도를 판정합니다.
df = open("survey3.txt", "rt", encoding="utf-8")
text = df.read()
tok = Tokenizer()
res = {"p":0, "n":0, "e":0}
for t in tok.tokenize(text):
bf = t.base_form
if bf in np_dic:
r = np_dic[bf]
if r in res:
res[r] += 1
print(res)
cnt = res["p"] + res["n"] + res["e"]
print("Positive", res["p"] / cnt)
print("Negative", res["n"] / cnt)
결과는 다음과 같습니다. 「전자판 약수첩을 사용하고 싶은 이유」에 관한 회답인 만큼, 역시 포지티브도가 높은 결과가 되고 있습니다.
덧붙여서 이 조사에서는, 「전자판 약수첩을 사용하고 싶지 않은 이유」에 대해서도 조사하고 있습니다. 이 데이터에서 비슷한 분석을 하면 어떻게 될까요?
결과는 이렇게 되었다. "사용하고 싶지 않은 이유"에도 불구하고 긍정도가 부정도를 초과합니다. 원래의 회답 데이터를 보면, 「종이의 수첩 쪽이 좋다」라고 하는 회답도 산견되어, 위와 같은 결과가 되어 버린 것 같습니다. 이 근처는 앙케이트 설계에도 관련되어 오는 부분이 되어, 텍스트 마이닝의 실시를 전제로 하고 있는 경우는 유의가 필요하게 될 것 같습니다.
참고 사이트
무제한의 인터넷 소설을 네거티브 포지션 판정으로 평가합시다.
htps // // 네 ws. my ゔぃ. jp/아리치ぇ/제로 py 텐-58/
Reference
이 문제에 관하여(앙케이트 조사 데이터를 분석해 본다【제4회:감정 분석】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/esaeki/items/31412aaba733f29325d2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)