Wenn ich im Internet surfe, flattere ich mit Verspottungen, die aus den Worten Masakari und Ahat Ahat herausspringen. Wenn eine solche Streukugel hierher fliegt, wie sollen wir sie für die psychische Gesundheit ausgeben?
Eine Lösung besteht darin, solche Sätze über schlechte psychische Gesundheit zu parieren, indem man sie "langsam" umwandelt.
** Langsame Übersetzung ** http://needtec.sakura.ne.jp/yukkuri_translator/
Nehmen wir an, Ihnen wurde gesagt: "Machen Sie nicht nur Mistvideos, diese Inkompetenz." Wenn es jedoch in "Ja, mach es nicht, dieser Dote-san." Konvertiert wird, wirst du nicht böse.
Hier werden wir MeCab verwenden, um morphologische Analysen durchzuführen und Sätze, die für die psychische Gesundheit schlecht sind, langsam umzuwandeln, um Beschwerden zu beseitigen, aber damit sie sich wie zu Hause fühlen.
yukkuri_translator.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import MeCab
import jctconv
import sys
import codecs
reload(sys)
sys.setdefaultencoding('utf-8')
sys.stdout = codecs.getwriter('utf-8') (sys.stdout)
converter = {
'Essen' : 'Mush Mush',
'Essen' : 'Musha Musha',
'schlafen' : 'Suyasu',
'schlafen' : 'Suyasu',
'Schlafen' : 'Suyasuyashi',
'Schlafen' : 'Suyasuyashi',
'Scheisse' : 'Ja ja',
'Schemel' : 'Ja ja',
'Flug' : 'Ja ja',
'Urin' : 'Shishi',
'Piss' : 'Shishi',
'Sonne' : 'Sonne',
'Sanktionen' : 'Überhaupt',
'Süßwaren' : 'Messe',
'Süßigkeiten' : 'Messe',
'Zucker' : 'Messe',
'Saft' : 'Messe',
'Koordinierung' : 'Koordinierung',
'Schwangerschaft' : 'Ninshin'
}
class MarisaTranslator:
def __init__(self, user_dic):
self.mecab = MeCab.Tagger("-u " + user_dic)
def _check_san(self, n):
"""
Beurteilung, ob "san" hinzugefügt werden soll
"""
f = n.feature.split(',')
if f[0] == 'Substantiv':
if f[1] == 'Eigenname' or f[1] == 'Allgemeines':
if n.next:
#Überprüfen Sie das nächste Wort
nf = n.next.feature.split(',')
if nf[0] in ['Substantiv', 'Hilfsverb']:
#Wenn die Nomenklatur folgt, fügen Sie hier nicht "san" hinzu
return False
else:
if n.surface.endswith('Herr.'): # Herr.でおわる場合は付与しない
return False
if n.surface == 'Herr' or n.surface == 'Sama': # Herrでおわる場合は付与しない
return False
return True
else:
return True
return False
def _check_separator(self, n):
"""
Beurteilung, ob "," hinzugefügt werden soll
"""
f = n.feature.split(',')
if f[0] == 'Partikel':
if n.next:
#Überprüfen Sie das nächste Wort
nf = n.next.feature.split(',')
if nf[0] in ['Symbol', 'Partikel']:
return False
return True
return False
def _get_gobi(self, n):
if n.next:
f_next = n.next.feature.split(',')
if n.next.surface == '、':
return None
if f_next[0] == 'BOS/EOS' or f_next[0] == 'Symbol':
f = n.feature.split(',')
if f[0] in ['Partikel', 'Substantiv', 'Symbol', 'Beeindruckende Worte']:
return None
if f[5] in ['Befehl e', 'Kontinuierlicher Typ']:
return None
if n.surface in ['Ist']:
return 'Was'
else:
return n.surface + 'Noze'
return None
def translate(self, src):
n = self.mecab.parseToNode(src)
text = ''
pre_node = None
while n:
f = n.feature.split(',')
if n.surface in converter:
text += converter[n.surface]
elif len(f) > 8:
gobi = self._get_gobi(n)
if gobi is not None:
text += gobi
elif f[8] != '*':
text += f[8]
else:
text += n.surface
else:
text += n.surface
if self._check_san(n):
text += 'Herr.'
elif self._check_separator(n):
text += '、'
n = n.next
pre_node = n
return jctconv.kata2hira(text.decode('utf-8')).encode('utf-8')
Beispiel für die Verwendung der obigen Klasse:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from yukkuri_translator import MarisaTranslator
if __name__ == "__main__":
t = MarisaTranslator('yukkuri.dic')
print t.translate('Machen Sie nicht nur Mistvideos, diese geringe Fähigkeit.')
Indem alle Zeichen einfach kana gemacht werden, wird es zu einer Linie wie ein 餡子 Gehirn.
Führen Sie dazu zunächst eine morphologische Analyse mit MeCab durch. Dadurch können Sie jedes Wort lesen. Dies gilt für 8 Funktionen (beginnend mit 0). Da diese Lesart in Katakana ist, verwenden Sie jctconv, um alles in ein einfaches Pseudonym umzuwandeln.
Es kann falsch verstanden werden, aber es ist ** Spezifikation **, weil es nur ein Sushi ist.
Aufgrund der langsamen Spezifikationen werden häufig flache Pseudonyme verwendet. Um die Lesbarkeit zu verbessern, fügen Sie daher so viel wie möglich nach dem Hilfswort "," ein. Weitere Informationen zu dieser Bedingung finden Sie unter "_check_separator".
Durch Hinzufügen von "san" am Ende der Nomenklatur können Sie die Langsamkeit ausdrücken. Wenn die Nomenklatur weiterhin besteht, gibt es Bedingungen wie Ausschluss. Weitere Informationen finden Sie unter "_check_san".
Das Ende von Slow Marisa hat eine Eigenschaft, und in vielen Fällen endet das Ende des Satzes mit "Noze" oder "Nanoze", also habe ich es reproduziert.
Ein Beispiel ist wie folgt.
Die Verwaltung von Zahlungen und Ausgaben ist die Norm
Wenn da ist
Es ist natürlich, die Ausgaben zu verwalten
Es wird sein.
Siehe "_get_gobi" für Endbedingungen.
Versuchen Sie, einige Wörter zu ersetzen. Zum Beispiel wird das Schimpfwort "Kot" durch "Ja" ersetzt, um den Geist des Benutzers zu stabilisieren. Dieser Austausch erfolgt gemäß dem in der Konvertervariablen registrierten Inhalt.
Mithilfe der morphologischen Analyse von MeCab wurde bestätigt, dass Sätze, die für die psychische Gesundheit schlecht sind, so getarnt werden können, als würden sie langsam und süß sprechen.
Wenn man dies anwendet, wird angenommen, dass es möglich ist, in Sätze wie "Slowly Reimu", "Slowly Youmu" und "Yaruo" zu übersetzen.
Die im Web ausgeführte Anwendung und ihr Code sind unten angefügt.
** Langsame Übersetzung ** http://needtec.sakura.ne.jp/yukkuri_translator/ https://github.com/mima3/yukkuri_translator
das ist alles.
Recommended Posts