Beginnend mit der Psychologie haben Menschen ihre Emotionen analysiert.
Unter ihnen, in der negativen / positiven Analyse, hauptsächlich die Bemerkungen und Ideen der Menschen Analysieren Sie, ob es positiv (positiv) oder rückwärts (negativ) ist.
Negative / Positive Analyse kann als eine Art von Technik bezeichnet werden, die als "Stimmungsanalyse" bezeichnet wird.
Dies extrahiert Ausdrücke in Bezug auf Bewertung und Emotionen, die in Sätzen usw. enthalten sind. Es bezieht sich auf Techniken zur Analyse von Emotionen in Sätzen.
Negative / positive Analysemethoden umfassen die wortweise Klassifizierung unter Verwendung eines polaren Wörterbuchs und tiefes Lernen.
Negativ/Positive werden als "Polarität" bezeichnet
Ein Polaritätswörterbuch ist eine Sammlung von Wörtern mit Polarität.
Das polare Wörterbuch namens PN Table polarisierte eine große Anzahl von Wörtern nicht manuell. Dies erfolgt durch Zuweisen von Punkten von -1 bis +1 zu hochrelevanten Wörtern basierend auf Wörtern mit einer geringen Menge an Polaritätsinformationen.
Darüber hinaus gibt es auf der Seite des Inui-Okazaki-Labors der Tohoku-Universität ein "japanisches Bewertungspolaritätswörterbuch". Dies geschieht, indem es zusätzlich zu negativ und positiv als neutral markiert wird Das polare Gleichgewicht der im Wörterbuch enthaltenen Wörter ist ausgeglichen.
Es gibt auch ein "Polar Phrase Dictionary", das von Yahoo! JAPAN Laboratory erstellt wurde.
#Gibt PNTable aus.
import pandas as pd
pn_df = pd.read_csv('./6020_negative_positive_data/data/pn_ja.dic',\
sep=':',
encoding='utf-8',
names=('Word','Reading','POS', 'PN')
)
print (pn_df)
Morphologische Analyse ist die Arbeit, einen Satz in Wörter zu unterteilen, die die kleinste Einheit sind.
Durch Durchführen einer morphologischen Analyse können Sie das Wort finden, das dem Polaritätswörterbuch entspricht. Dieses Mal führen wir eine morphologische Analyse mit MeCab durch und ändern den Text in eine leicht lesbare Form.
import MeCab
mecab = MeCab.Tagger('')
title = open('./6020_negative_positive_data/data/aidokushono_insho.txt')
file = title.read()
title.close()
print(mecab.parse(file))
Erleichtern Sie zunächst die Durchführung anderer Verarbeitungen, indem Sie die Analyseergebnisse auflisten.
Bei der Durchführung einer morphologischen Analyse mit MeCab ist die letzte Zeile "leer" und die vorletzte Zeile "EOS". Da diese beiden Zeilen nicht verwendet werden, werden sie gelöscht.
In jeder Zeile des Analyseergebnisses folgt auf das Wort eine Registerkarte, und andere Informationen werden durch ein Komma getrennt.
import MeCab
import pandas as pd
import re
mecab = MeCab.Tagger('')
title = open('./6020_negative_positive_data/data/aidokushono_insho.txt')
file = title.read()
title.close()
def get_diclist(file):
parsed = mecab.parse(file)
#Trennen Sie das Analyseergebnis durch Zeilenumbruch
lines = parsed.split('\n')
#Erstellen Sie eine neue Liste, wobei die letzten beiden Zeilen entfernt wurden
lines = lines[0:-2]
#Erstellen Sie eine Liste der Analyseergebnisse
diclist = []
for word in lines:
#Erstellen Sie Daten, die durch Tabulatoren und Kommas getrennt sind
data = re.split('\t|,',word)
datalist = {'BaseForm':data[7]}
diclist.append(datalist)
return(diclist)
wordlist = get_diclist(file)
print(wordlist)
Lesen Sie das Polaritätswörterbuch (PN-Tabelle) Sie können den angezeigten Wörtern Polarität verleihen, indem Sie sie mit der Liste der Analyseergebnisse vergleichen.
Erstellen Sie ein Wörterbuch mit Wörtern und Polaritätswerten nur aus PNTable. Erstellt eine neue Liste von Wörtern und Polaritätswerten, die in der neuen PNTable vorhanden sind.
import pandas as pd
#Lesen Sie das Wörterbuch
pn_df = pd.read_csv('./6020_negative_positive_data/data/pn_ja.dic',\
sep=':',
encoding='utf-8',
names=('Word','Reading','POS', 'PN')
)
#Ändern Sie PNTable, um den Typ nur mit Wörtern und Polaritätswerten zu diktieren
word_list = list(pn_df['Word'])
pn_list = list(pn_df['PN'])
pn_dict = dict(zip(word_list, pn_list))
#Extrahieren Sie die in der PN-Tabelle vorhandenen Wörter aus der Liste der Analyseergebnisse
def add_pnvalue(diclist_old):
diclist_new = []
for word in diclist_old:
baseword = word['BaseForm']
if baseword in pn_dict:
#Fügen Sie den Polaritätswert und sein Wort hinzu, falls es in der PNTable vorhanden ist
pn = float(pn_dict[baseword])
else:
#Wenn es nicht existiert, geben Sie nicht gefunden an
pn = 'notfound'
word['PN'] = pn
diclist_new.append(word)
return(diclist_new)
wordlist = get_diclist(file) #1.2.Dies ist die in 3 verwendete Funktion.
pn_list = add_pnvalue(wordlist)
print(pn_list)
import re
import csv
import time
import pandas as pd
import matplotlib.pyplot as plt
import MeCab
import random
%matplotlib inline
#Datei lesen
title = open('./6020_negative_positive_data/data/aidokushono_insho.txt')
file = title.read()
title.close()
#Erstellen Sie eine MeCab-Instanz
mecab = MeCab.Tagger('')
#Wörterbuch lesen
pn_df = pd.read_csv('./6020_negative_positive_data/data/pn_ja.dic',\
sep=':',
encoding='utf-8',
names=('Word','Reading','POS', 'PN')
)
def get_diclist(file):
parsed = mecab.parse(file)
lines = parsed.split('\n')
lines = lines[0:-2]
diclist = []
for word in lines:
l = re.split('\t|,',word)
d = {'BaseForm':l[7]}
diclist.append(d)
return(diclist)
word_list = list(pn_df['Word'])
pn_list = list(pn_df['PN'])
pn_dict = dict(zip(word_list, pn_list))
def add_pnvalue(diclist_old):
diclist_new = []
for word in diclist_old:
base = word['BaseForm']
if base in pn_dict:
pn = float(pn_dict[base])
else:
pn = 'notfound'
word['PN'] = pn
diclist_new.append(word)
pn_point = []
for word in diclist_new:
pn = word['PN']
if pn != 'notfound':
pn_point.append(pn)
return(pn_point)
wordlist = get_diclist(file)
pn_list = add_pnvalue(wordlist)
plt.plot(pn_list)
plt.title(title)
plt.show
Recommended Posts