Python: Negative / Positive Analyse: Textanalyse-Anwendung

Was ist eine negative / positive Analyse?

Überblick

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.

Polaritätswörterbuch

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)

image.png

Negative / Positive Analyse mit Polar Dictionary

Morphologische Analyse

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))

image.png

Auflistung der morphologischen Analyse

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)

image.png

Beurteilen Sie das Analyseergebnis negativ / positiv

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)

image.png

Implementierung der negativen / positiven Analyse

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

image.png

Recommended Posts

Python: Negative / Positive Analyse: Textanalyse-Anwendung
Negative / Positive Analyse 1 Anwendung der Textanalyse
Python: Negative / Positive Analyse: Twitter Negative / Positive Analyse mit RNN-Teil 1
Negative / Positive Analyse 3 Twitter Negative / Positive Analyse (2)
Python: Japanischer Text: Morphologische Analyse
Text Mining mit Python ① Morphologische Analyse
Datenanalyse Python
Scraping & Negative Positive Analyse von Bunharu Online-Artikeln
Clustertext in Python
Datenanalyse mit Python 2
Python: Zeitreihenanalyse
Text Mining mit Python ① Morphologische Analyse (re: Linux-Version)
Datenanalyse Übersicht Python
Sprachanalyse mit Python
Textverarbeitung mit Python
Fordern Sie die Hauptkomponentenanalyse von Textdaten mit Python heraus
Python-Datenanalysevorlage
Assoziationsanalyse in Python
Sprachanalyse mit Python
Anwendung von Python 3 vars
Datenanalyse mit Python
Python-Anwendung: Pandas # 3: Dataframe
Regressionsanalyse mit Python
Mein Python-Datenanalyse-Container
UTF8-Textverarbeitung mit Python
Python-Anwendung: Pandas Teil 1: Basic
[Python] Morphologische Analyse mit MeCab
Python für die Datenanalyse Kapitel 4
[Python] Inf steht für positive Unendlichkeit
Python Statistical Techniques-Statistische Analyse gegen Python-
Emotionsanalyse von Python (word2vec)
[Python] Hinweise zur Datenanalyse
Axialsymmetrische Spannungsanalyse mit Python
Python-Anwendung: Datenvisualisierung # 2: matplotlib
Lernnotizen zur Python-Datenanalyse
Planare Skelettanalyse mit Python
Ist Vtuber positiv? Ist es negativ
Japanische morphologische Analyse mit Python
Sprechen mit Python [Text zu Sprache]
Ich habe einen Python-Text gemacht
Python für die Datenanalyse Kapitel 2
Einfache Regressionsanalyse mit Python
Webanwendung mit Python + Flask ② ③
Datenanalyse mit Python-Pandas
Muskel-Ruck-Analyse mit Python
Text Emotionsanalyse mit ML-Ask
Webanwendung mit Python + Flask ④
Python für die Datenanalyse Kapitel 3