[PYTHON] Je voulais générer une phrase comme "Fucking Rashomon" (ancienne forme)

Mise en garde

Contient ces éléments

Préface

On a parlé de Fucking Deca Rashomon il y a quelque temps, j'aime cette grammaire inutilement énorme, donc je veux la générer. Masu

environnement

Préparation

Obtention de données textuelles

Télécharger le Rashomon original d'Aozora Bunko. Ici a déclaré que vous pouvez télécharger des fichiers sans ruby, mais je ne pouvais trouver que ruby, alors téléchargez-le et ruby. Retirer. Tout d'abord, supprimez la notation du bas ajoutée par le côté Aozora Bunko, image.png

Avec la fonction côté éditeur de texte||《[^《》]*》|※[[^[]]*]Supprime (ne remplace rien) la chaîne qui correspond à l'expression régulière dans. image.png Oh, et le code de caractère était défini sur Shift-JIS, mais je l'ai changé en UTF-8 parce que c'était gênant.

Pensez à la direction

Comparaison pour le moment

Ceci termine la préparation des données textuelles pour le moment. Comparons le putain de Rashomon ordinaire et le putain de deca Rashomon avec un petit difff.jp. image.png Comprenez vous. Sauf pour les sauts de ligne, le shit deca Rashomon est transformé en un shit deca avec ** un «ajout» complet ** sans couper du tout le texte original. Après tout, vous devez faire attention à ne pas changer le mot lui-même ** lorsque vous générez une putain de phrase déca. Le simple fait d'ajouter trop de parties détruira le texte original.

À propos de la "spécialisation en un point"

De plus, quand il s'agit de putain de déca, il s'agit plus d'une ** spécialisation en un point ** que de beaucoup de descriptions. Par exemple

Au lieu de cela, beaucoup de corbeaux se sont rassemblés quelque part. Quand je le regarde pendant la journée, les corbeaux volent en cercle, gémissant autour de la grande sétaire.

Le texte du putain de Rashomon ordinaire est changé pour le putain de déca Rashomon comme ça --- parce que le libellé est mauvais, appelons-le ** putain **.

Au lieu de cela, des ** corbeaux super-mauvais ** se sont rassemblés quelque part ** en milliards **. Quand je le regarde pendant la journée, les corbeaux font un cercle avec ** 10000 ** plumes, ** merde ** autour de la haute 鴟 queue ** à un volume de niveau de destruction de la membrane tympanique **, tandis que ** à vitesse subsonique * * Voler autour.

Cette baise est axée sur ** le renforcement de la description existante , je pense. Par exemple, "beaucoup" devient " millions d'unités ** beaucoup", "combien" devient "combien ** millions " et "élevé" devient " merde ** élevé". .. Par exemple, il serait possible d'augmenter les attributs en remplaçant «élevé» par «** gros et ** élevé», mais au lieu de cela, nous nous concentrons sur le renforcement de la description existante. De plus, si la description existante n'existe pas, ** une nouvelle description est créée et elle est renforcée . Si c'est "Kou ga", cela devient " Evil ** Kou ga", et cela devient "** Super ** Evil Kou ga". En premier lieu, les titres sont "** Shit ", " Big **" et "Rashomon", donc "Shit" renforce "Big". [^ 1]

s'entendre

Pour le moment

"Spring" est important pour faire une merde. Ces gars vont faire quelque chose tout de suite. Afin de "rouler"

  1. Trouvez un verbe indépendant

Il semble que vous devriez suivre un processus typique. Je pense qu'il existe un autre bon moyen, mais je ne pouvais pas y penser, alors j'ai directement consulté le dictionnaire IPA ** (Reference /adsmedia.hatenablog.com/entry/2016/10/20/002211))).

Préparation des données

Tout d'abord, téléchargez le Dictionnaire IPA, décompressez-le, copiez-y le fichier Verb.csv dans le répertoire courant et ouvrez-le. Il s'agit d'un fichier contenant des données de verbe. Le contenu est comme ça. image.png Je n'ai besoin de rien d'autre que la ligne où "Forme continue" est écrit dans la 10ème colonne, alors supprimez-la. Je pense que ce serait bien de l'ouvrir avec un éditeur de texte (pas un logiciel de calcul de table) et de supprimer la chaîne de caractères qui correspond à l'expression régulière de ^ (?!. *, Forme continue,). * $ \ N. image.png Maintenant, enregistrez-le sous ** Formulaire continu list.csv **. Le post-traitement étant gênant, changez le code de caractère en ** UTF-8 **. De plus, nous créerons un fichier lié à l'utilisation de "Makuru". Cette partie du Verb.csv original image.png Copiez-le et enregistrez-le dans le répertoire courant sous le nom ** Roll.csv **. C'est aussi UTF-8.

code

J'ai écrit.

python


# -*- coding: utf-8 -*-
import MeCab
import csv
t = MeCab.Tagger()
print("Entrer")
text = input()
nodes_s = t.parseToNode(text)
output = ""
with open('Liste des formulaires en continu.csv',encoding='UTF-8') as r, open("Fête.csv",encoding='UTF-8') as m:
    r_list = [list(x) for x in zip(*[row for row in (csv.reader(r))])]
    m_list = [list(x) for x in zip(*[row for row in (csv.reader(m))])]
while nodes_s:
    nodes_a = nodes_s.feature.split(",")
    if nodes_a[:2] == ["verbe", "Indépendance"] and not nodes_s.feature.split(",")[6] in ["Faire","y a-t-il"]:
        ori = nodes_a[6]
        type = nodes_a[5]
        renyo = r_list[0][r_list[10].index(ori)]
        mak = m_list[0][m_list[9].index(type)]
        if mak == "Rouleau" and nodes_s.next.feature.split(",")[7][0] in "Tachitsuteto":
            mak = "Maku"  #Gestion des exceptions car il y avait des cas où la connexion ne fonctionnait pas.
        output += renyo + mak
    else:
        output += nodes_s.surface
    nodes_s = nodes_s.next
print("\n sortie:\n" + output)

Désolé pour le code bâclé. Exécutez ce gars.

contribution `` La servante a maudit la vieille femme en tombant sur le cadavre, l'empêchant de se hâter et essayant de s'échapper. La vieille femme essaie toujours de se débarrasser de sa servante. Le serviteur le repousse également, essayant de ne pas le lâcher. Les deux se sont agrippés silencieusement pendant un moment dans le cadavre. Cependant, la victoire ou la défaite est connue depuis le début. Le serviteur a finalement saisi le bras de la vieille femme et l'a renversé de force. C'est un bras avec seulement des os et de la peau, tout comme une cuisse de poulet. ''

production `` La servante a maudit la vieille femme alors qu'elle tombait sur le cadavre, flottant à la hâte et bloquant la file de personnes essayant de s'échapper. La vieille femme essaie toujours de se débarrasser de sa servante. Le serviteur le repousse également, essayant de ne pas le lâcher. Dans le cadavre, les deux se sont saisis silencieusement pendant un moment. Cependant, la victoire ou la défaite est claire depuis le début. Le serviteur a finalement saisi le bras de la vieille femme et l'a renversé de force. C'est un bras avec seulement des os et de la peau, tout comme une cuisse de poulet. '' Pour le moment, je pense que ce que j'avais l'intention de faire est quelque chose qui semble être fait. Il existe diverses lacunes, Si cela reste tel quel, il sera "trop roulé", donc des ajustements seront nécessaires.

Tuer "ne pas gâcher"

Ce code donne un aspect non naturel lorsque vous entrez certains caractères. Par exemple, «personne ne sait où se trouve le serviteur. En supposant que vous ayez tapé ` Le résultat est «Personne ne sait où se trouve le serviteur. C'est ". Non quoi? Qu'est-ce que vous ne savez pas tout? Evidemment bizarre donc nous allons changer le code.

python


#Omission
while nodes_s:
    nodes_a = nodes_s.feature.split(",")
    if nodes_a[:2] == ["verbe", "Indépendance"] and not nodes_s.feature.split(",")[6] in ["Faire","y a-t-il"]:
#Omission

Jouez avec le si ici pendant un moment

python


while nodes_s:
    nodes_a = nodes_s.feature.split(",")
    if nodes_a[:2] == ["verbe", "Indépendance"] and (not nodes_s.feature.split(",")[6] in ["Faire","y a-t-il"]) and not nodes_s.next.feature.split(",")[4] in ["Spécial Nai"]:

Je vais le faire. Il s'agit d'un processus similaire au processus d'exception au moment de la connexion, et il est déterminé par ** pré-lecture ** du nœud suivant du nœud en cours de traitement avec «next». Avec cela, personne ne sait où se trouve le serviteur. ʻEst une sortie.

Tuer "Makudde"

Je vais tuer ce gars parce que "choisir" devient quelque chose comme "choisir et presser". Remplacez grossièrement pour tuer. Je l'ai résolu en insérant ʻoutput = output.replace ("Makutte", "Makutte") ʻune ligne avant l'impression. Oh, il y avait aussi quelque chose comme «roulé», alors remplaçons-le toujours par «roulé»

Ce qui suit est omis

Eh bien, j'ai artificiellement fixé un endroit artificiel comme celui-ci Comme il est gênant de déplacer le processus, je l'ai omis et j'ai donc obtenu ce code

python


# -*- coding: utf-8 -*-
import MeCab
import csv
t = MeCab.Tagger()
print("Entrer")
inp = input()
def makuring(text):
    nodes_s = t.parseToNode(text)
    output = ""
    with open('Liste des formulaires en continu.csv',encoding='UTF-8') as r, open("Fête.csv",encoding='UTF-8') as m:
        r_list = [list(x) for x in zip(*[row for row in (csv.reader(r))])]
        m_list = [list(x) for x in zip(*[row for row in (csv.reader(m))])]
    while nodes_s:
        nodes_a = nodes_s.feature.split(",")
        if nodes_a[:2] == ["verbe", "Indépendance"] and (not nodes_s.feature.split(",")[6] in ["Faire", "y a-t-il", "Devenir", "Est","Dire","dire","aller"]) and not nodes_s.next.feature.split(",")[4] in ["Spécial Nai", "Spécial"]:
            ori = nodes_a[6]
            type = nodes_a[5]
            if ori in r_list[10]:
                renyo = r_list[0][r_list[10].index(ori)]
                mak = m_list[0][m_list[9].index(type)]
                if mak == "Rouleau" and nodes_s.next.feature.split(",")[7][0] in "Tachitsuteto":
                    mak = "Maku"  #Gestion des exceptions car il y avait des cas où la connexion ne fonctionnait pas.
                output += renyo + mak
            else:
                output += nodes_s.surface
        else:
            output += nodes_s.surface
        nodes_s = nodes_s.next
    return output.replace("Makude", "Retrousser").replace("Couvert", "Saupoudré").replace("Makuda", "Enroulé")

Au fait, je les ai traités comme des fonctions. Ceci termine le processus de «roulement» pour le moment.

Coller les nombres ensemble

Le numéro de la merde deca Rashomon est aussi de la merde. Le taux est-il d'environ 100 à 10000 fois? En outre, il y a de nombreux événements tels que 60 000 personnes contre des voleurs qui "reçoivent des chiffres étrangement concrets". Pour le moment, j'avais envie de multiplier le nombre existant par 10 à la 2e à la 4e puissance.

python


# -*- coding: utf-8 -*-
import MeCab
import csv
from kanjize import int2kanji, kanji2int
import random
t = MeCab.Tagger()
print("Entrer")
inp = input()
kan_dic = { "cent": "cent","Cinq": "Cinq","5": "Cinq","Huit": "Huit","・": "・","Mille milliards": "Mille milliards","9": "Neuf",
            "Sept": "Sept","Trois": "Trois","0": "〇","0": "〇","Dix mille": "Dix mille","zéro": "〇","quatre": "quatre",
            "7": "Sept","2": "deux","4": "quatre","1": "un","6": "Six","〇": "〇","Dix": "Dix",
            "Six": "Six","8": "Huit","3": "Trois","deux": "deux","○": "〇" ,"mille": "mille","un": "un",
            "Milliard": "Milliard","Neuf": "Neuf","Hyaku": "cent","zéro": "〇","Ichi": "un"} #Un dictionnaire de normalisation des nombres créé par le traitement du dictionnaire IPA

#(Omis)
def incr(text):
    nodes_s = t.parseToNode(text)
    output = ""
    int_flag = False
    count = 0
    while nodes_s:
        count += 1
        nodes_a = nodes_s.feature.split(",")
        if nodes_a[1] == "nombre" and nodes_s.surface in kan_dic.keys():
            if not int_flag:
                int_flag = True
                kansuji = ""
            kansuji += kan_dic[nodes_s.surface]
        else:
            if int_flag:
                int_flag = False
                random.seed(kansuji)
                output += int2kanji(kanji2int(kansuji) * (10 ** random.randint(2,4)))
            elif count > 1:
                if nodes_s.prev.surface in ["quoi", "Quoi", "Combien"] and nodes_s.prev.feature.split(",")[1] == "nombre":
                    random.seed(nodes_s.surface)
                    output += random.choice(["mille","Dix mille","Milliard"])
            output += nodes_s.surface
        nodes_s = nodes_s.next
    return output

print("\n sortie:\n" + makuring(incr(inp)))

contribution «Sous la large porte, il n'y a personne d'autre que cet homme. Cependant, il y a un 蟋蟀 dans une grande colonne avec le revêtement beige pelé par endroits. Tant que Rashomon est sur Suzaku Oji, en plus de cet homme, il y aura probablement quelques autres personnes, comme Ichimekasa et Koukara Hat, qui sont sous la pluie. Ce n'est personne d'autre que cet homme. ''

production «Sous la large porte, il n'y a personne d'autre que cet homme. Cependant, il y a mille 蟋蟀 dans une grande colonne avec un revêtement beige dépouillé. Tant que Rashomon est situé sur Suzaku Oji, il y aura probablement 5000 personnes de plus en plus de cet homme, comme Ichimekasa et Koukara Hat, qui sont sous la pluie. Ce n'est personne d'autre que cet homme. '' La raison pour laquelle "deux trois personnes" est changé en "5 000 personnes" au lieu de "deux mille personnes" (c'est une mauvaise interprétation) est le `kanjize utilisé pour la conversion mutuelle entre les kanji et les nombres. Je pense que cela dépend des spécifications de la bibliothèque. Je sens que je peux le réparer, mais c'est un problème, alors je vais m'arrêter.

Traitement "plusieurs"

Au moment de la merde, "beaucoup" devient "beaucoup en 100 millions d'unités", n'est-ce pas? Il semble que nltk et Wordnet auront l'air bien, alors reportez-vous à cet article

python


pip install nltk
python -c "import nltk;nltk.download('wordnet')"
python -c "import nltk;nltk.download('omw')"

Est exécuté à l'invite de commande pour préparer l'environnement. Maintenant, essayons de produire beaucoup de synonymes. (Le code de l'article que j'ai posté plus tôt est presque le même, je suis désolé)

python


from nltk.corpus import wordnet

synsets = wordnet.synsets("Beaucoup", lang='jpn')
takusan_synset = synsets[0]
synonyms = takusan_synset.lemma_names("jpn")
print(synonyms)

production ['Beaucoup', 'Beaucoup', 'Beaucoup', 'Beaucoup', 'Beaucoup', 'Beaucoup', 'Kodai', 'Abondance', 'Totalement', 'Yutaka', 'Riche', ' Abondance »,« Plump »,« Abondance »,« Fertilité »] C’est bien, c’est beaucoup. Enregistrez cette liste crachée telle quelle sous la forme d'un tableau de "beaucoup de mots" et allez dans le sens de l'ajout de nombres spécifiques aux mots qui ont les mots contenus dans ce tableau comme synonymes. (J'ai abandonné parce que je ne pouvais pas penser à un moyen d'augmenter le nombre de voleurs à 60000)

python


# -*- coding: utf-8 -*-
import MeCab
import csv
from kanjize import int2kanji, kanji2int
import random
from nltk.corpus import wordnet
#(Omis)
blacklist = []
t = MeCab.Tagger()
takusan = [ 'Beaucoup', 'Grand', 'Grande quantité', 'Masse', 'Beaucoup', 'Lot', 'Kodai',
            'Abondant', 'Totalement', 'Yutaka', 'Yutakaか', 'Yutaka富', 'Yutaka満', 'Yutaka潤', 'Yutaka饒']
#(Omis)
def embod(text):
    global blacklist
    nodes_s = t.parseToNode(text)
    output = ""
    while nodes_s:
        nodes_a = nodes_s.feature.split(",")
        if not (nodes_a[1] in ["verbe", "Particule", "symbole", "助verbe"] or nodes_s.surface in blacklist):
            synsets = wordnet.synsets(nodes_s.surface, lang='jpn')
            synsets_a = []
            for i in synsets:
                synsets_a += i.lemma_names("jpn")
            if len(set(takusan) & set(synsets_a)) > 0:
                random.seed(nodes_s.prev.prev.surface +nodes_s.prev.surface) #J'ai senti qu'il serait préférable que le résultat généré pour une entrée soit toujours le même, donc le paramètre de départ
                output += random.choice(["En 10000 unités","En 100 millions d'unités","En milliers de milliards"])
            else:
                blacklist += nodes_s.surface
        output += nodes_s.surface
        nodes_s = nodes_s.next
    return output

J'avais le sentiment que le traitement prendrait plus de temps, j'ai donc ajouté une liste noire pour raccourcir le temps d'exécution. contribution ʻA la place, beaucoup de corbeaux se sont rassemblés quelque part. Quand je le regarde pendant la journée, les corbeaux volent en cercle, gémissant autour de la grande sétaire. Surtout lorsque le ciel au-dessus de la porte est devenu nuageux au coucher du soleil, il semblait qu'il contenait des graines de sésame. Le corbeau, bien sûr, vient siroter la chair des morts sur la porte. «Mais aujourd'hui, je ne vois aucun d'entre eux, probablement parce que le délai est tardif. Cependant, à certains endroits, sur les marches de pierre avec des herbes hautes dans l'effondrement, vous pouvez voir les excréments de corbeaux accrochés à des taches blanches. Le serviteur plaça la crosse bleu marine délavée sur le dessus des sept marches de pierre, et regarda faiblement la pluie, prêtant attention aux grosses rides sur sa joue droite. .. '' production «Au lieu de cela, beaucoup de corbeaux se sont rassemblés par trillions de quelque part. Quand je regardais autour de moi pendant la journée, les corbeaux attiraient des milliers d'oiseaux en cercle, flottant autour de la grande sétaire et volant. Surtout lorsque le ciel au-dessus de la porte est devenu nuageux au coucher du soleil, il était clairement visible comme s'il avait été saupoudré de graines de sésame. Le corbeau, bien sûr, vient engloutir la chair des morts sur la porte. «Mais aujourd'hui, je ne peux pas voir mille oiseaux, probablement parce que le délai est tardif. Cependant, à certains endroits, il était sur le point de s'effriter, et sur les marches de pierre d'herbes hautes dans le crumble, je pouvais voir les excréments des corbeaux accrochés au blanc. Le serviteur pose une crosse bleu marine délavée 襖 au sommet des 7 000 marches de pierre, et tout en s'inquiétant des grosses rides sur sa joue droite, il arrose faiblement la pluie. Je regardais autour de moi. '' N'est-ce pas un très bon sentiment?

Traitement de "deux trois personnes"

J'ai écrit plus tôt que "je sens que je peux le réparer, mais c'est un problème, alors je vais l'arrêter", mais je pense que c'est plus facile que je ne le pensais, alors je vais le réparer.

python


#(Omis)
        else:
            if int_flag:
                int_flag = False
                if len(kansuji) > 1:
                    if all((s in "un deux trois quatre cinq six sept huit neuf") for s in [kansuji[0],kansuji[1]]): #Si les deux premières lettres sont toutes les deux de 1 à 9, il est considéré comme similaire à "Nisan"
                        output += kansuji[0]
                        kansuji = kansuji[1:]
                random.seed(kansuji)
                output += int2kanji(kanji2int(kansuji) * (10 ** random.randint(2,4)))
#(Omis)

contribution «Sous la large porte, il n'y a personne d'autre que cet homme. Cependant, il y a un 蟋蟀 dans une grande colonne avec le revêtement beige pelé par endroits. Tant que Rashomon est sur Suzaku Oji, en plus de cet homme, il y aura probablement quelques autres personnes, comme Ichimekasa et Koukara Hat, qui sont sous la pluie. Ce n'est personne d'autre que cet homme. '' production Il n'y a personne d'autre que cet homme sous la porte, qui est aussi large qu'un billion. Cependant, il y a mille 蟋蟀 dans une grande colonne avec un revêtement beige dépouillé. Tant que Rashomon est situé sur Suzaku Oji, en plus de cet homme, il y aura probablement deux mille personnes supplémentaires, comme Ichimekasa et Kaoru Hat, qui sont sous la pluie. Ce n'est personne d'autre que cet homme. ''

Est-ce parfait?

Ajout de description / putain

Préface (longue)

Je suis enfin arrivé ……… Probablement le plus gros défi, je ne comprends toujours pas comment écrire ça Non, que dois-je faire? Eh bien, pour le moment, je vais essayer quelque chose comme "ajouter une nouvelle description" à "des mots qui n'ont pas encore été décrits".

↑ j'ai écrit cette phrase il y a 3 jours ... je faisais du Hacknet s'il y avait un écart de 3 jours ......... je suis trop improductif Parce que je falsifiais les données de Pointclicker sur Hacknet en riant comme "Non, c'est vraiment bien ~~~~~" ... C'est un gars terrible. Eh bien, si vous utilisez ** Cabocha pour l'analyse des dépendances dans les 3 jours, vous pouvez le diviser en «phrases avec une description» et «phrases sans description». ** Je suis venu avec ça C'est pourquoi j'ai installé Cabocha depuis ici pour le moment ……… Cette Eh bien, je l'installe et le teste maintenant, mais ** il ne produit rien ** J'ai échoué dans quelque chose, je ne peux pas m'en empêcher C'est pourquoi ** recherchez un analyseur de dépendances autre que Cabocha **

Ça y est

API COTOHA. Selon une connaissance, il semblerait que ce mec ait une fonction d'analyse syntaxique (forte), ** je pensais que je saisirais l'avenir avec ça **, mais je ne sais pas ce que c'est, mais "j'ai lu les conditions d'utilisation" Je ne peux pas cocher la case, alors j'abandonne. C'est fini

Quand il s'agit de ça

Je vais faire quelque chose. Faisons un plan Eh bien, vous devriez juger s'il est "descriptif" ou "non décrit", et si ce n'est pas le cas, ajouter quelque chose de nouveau et approprié. Tout d'abord, il doit y avoir quelque chose à dire ** "mots à décrire" **. Pour le moment, disons que ** nomenclature générale ** (voleurs, 蟋蟀, etc.) et ** verbes autonomes ** (parler, voler, etc.) sont des «mots à décrire». Et, afin de juger si "ce mot à décrire" est décrit, ** si l'élément morphologique précédent est un mot auxiliaire de casse ou un signe de ponctuation ** sera utilisé. J'ai senti que ce serait un bon sentiment, alors je vais le faire. Créons une fonction basée sur cela.

python


#(Omis)
def deco(text):
    nodes_s = t.parseToNode(text)
    output = ""
    count = 0
    while nodes_s:
        nodes_a = nodes_s.feature.split(",")
        count += 1
        if nodes_a[:2] in [["nom", "Général"], ["nom", "固有nom"], ["verbe", "Indépendance"]] and count > 1:
            if nodes_s.prev.feature.split(",")[0] in ["Coalm"] or nodes_s.prev.feature.split(",")[1] in ["Assistant de cas", "Phrase", "Point de lecture", "Assistants parallèles"]:
                output += "Putain gros"
        output += nodes_s.surface
        nodes_s = nodes_s.next
    return output

print("\n sortie:\n" + makuring(embod(incr(deco(inp)))))

Pour le moment, nous avons créé une fonction qui met «putain de déca» devant un élément morphologique qui ne semble pas encore décrit. Je n'ai même pas fait de distinction entre les verbes et la nomenclature, mais faisons-le pour l'instant.

contribution «Sous la large porte, il n'y a personne d'autre que cet homme. Cependant, il y a un 蟋蟀 dans une grande colonne avec le revêtement beige pelé par endroits. Tant que Rashomon est sur Suzaku Oji, en plus de cet homme, il y aura probablement quelques autres personnes, comme Ichimekasa et Koukara Hat, qui sont sous la pluie. Ce n'est personne d'autre que cet homme. ''

production Il n'y a personne d'autre que ce putain de gros homme sous la porte, qui est aussi large qu'un billion. Cependant, il y a mille merde-deca 蟋蟀 dans une grosse colonne de merde-deca avec beaucoup de merde peinte en beige. Tant qu'il y aura un putain de gros Rashomon sur le putain de gros Suzaku Oji, en plus de ce putain de gros homme, il y aura probablement deux mille personnes de plus, comme Ichimekasa et le putain de gros chapeau de corbeau, qui sont putain de gros temps pluvieux. Ce n'est personne d'autre que ce putain de gros gars. '' Euh ~~~~~~~~~~~~ Peux tu aller ...? Non, hein ~~~~ C'est encore difficile à juger, et je vais y remédier un peu.

python


def deco(text):
    nodes_s = t.parseToNode(text)
    output = ""
    count = 0
    while nodes_s:
        nodes_a = nodes_s.feature.split(",")
        count += 1
        if count > 1:
            if nodes_s.prev.feature.split(",")[0] in ["Coalm"] or nodes_s.prev.feature.split(",")[1] in ["Assistant de cas", "Phrase", "Point de lecture", "Assistants parallèles"]:
                if nodes_a[:2] in [["nom", "Général"], ["nom", "固有nom"]]:
                    output += "Putain gros"
                elif nodes_a[:2] in [["verbe", "Indépendance"]]:
                    output += "Absurde"
        output += nodes_s.surface
        nodes_s = nodes_s.next
    return output

Pour les verbes, "foiré" est ajouté, et pour la nomenclature, "putain de gros" est ajouté. Je pense que cela rend un peu plus facile à comprendre.

contribution «Sous la large porte, il n'y a personne d'autre que cet homme. Cependant, il y a un 蟋蟀 dans une grande colonne avec le revêtement beige pelé par endroits. Tant que Rashomon est sur Suzaku Oji, en plus de cet homme, il y aura probablement quelques autres personnes, comme Ichimekasa et Koukara Hat, qui sont sous la pluie. Ce n'est personne d'autre que cet homme. ''

production Il n'y a personne d'autre que ce putain de gros homme sous la porte, qui est aussi large qu'un billion. Cependant, il y a mille merde-deca 蟋蟀 dans une grosse colonne de merde-deca avec beaucoup de merde peinte en beige. Tant que le putain de gros Rashomon est foiré sur le putain de gros Suzaku Oji, en plus de ce putain de gros homme, il y aura probablement deux mille personnes de plus, comme l'Ichimekasa et le putain de gros chapeau de corbeau qui gâchent la putain de pluie. .. Ce n'est personne d'autre que ce putain de gros gars. ''

La bonté

Essayez d'augmenter le vocabulaire pour le moment

L'un des charmes de Koshideka Rashomon est l'abondance de Koshideka. Classer grossièrement les putains d'idiomes, ** "choses attachées à la nomenclature" ** (gros / énorme), ** "choses attachées aux verbes" ** (comme les idiots / foirés) et ** "plaidoyer Il existe trois types: "des choses qui vous collent" ** (super / putain). «Les choses attachées aux adjectifs» sont parfois attachées à la merde, c'est donc une position un peu spéciale. Je pense qu'il est possible de le générer mécaniquement, mais c'est ennuyeux, alors ** je l'ai généré manuellement. ** **

Mon vocabulaire est devenu pauvre parce que je l'ai fait correctement ... Eh bien, faisons-le avec ça Pour le moment, faire baiser des nomens et des verbes

python


def deco(text):
    nodes_s = t.parseToNode(text)
    output = ""
    count = 0
    while nodes_s:
        nodes_a = nodes_s.feature.split(",")
        count += 1
        if count > 1:
            if nodes_s.prev.feature.split(",")[0] in ["Coalm"] or nodes_s.prev.feature.split(",")[1] in ["Assistant de cas", "Phrase", "Point de lecture", "Assistants parallèles"]:
                random.seed(nodes_s.prev.surface + nodes_s.surface + nodes_s.next.surface) #Décision de semences en se référant à l'avant et à l'arrière
                if nodes_a[:2] in [["nom", "Général"], ["nom", "固有nom"]]:
                    output += random.choice(["Gros","Gros","Geki","巨Gros","Il y a des éléphants","Dangereux","gros","En aucune façon","Impressionnant","Le plus fort du monde"])
                elif nodes_a[:2] in [["verbe", "Indépendance"]]:
                    output += random.choice(["Mecha Mecha","Comme un idiot", "sérieusement", "Ça fait mal"])
        output += nodes_s.surface
        nodes_s = nodes_s.next
    return output

Oh, et j'ai un peu changé l'ordre des fonctions

python


print("\n sortie:\n" + makuring(deco(embod(incr(inp)))))

contribution «L'auteur vient d'écrire:« Le domestique attendait la pluie ». Cependant, même si la pluie s'arrête, le serviteur n'a aucune idée de ce qu'il doit faire. Normalement, bien sûr, je devrais pouvoir rentrer chez mon mari. Cependant, son maître lui a donné du temps libre il y a 45 jours. Comme je l'ai déjà écrit, la ville de Kyoto était en déclin à cette époque. Ce n'est que la petite suite de ce déclin que ce serviteur a reçu du temps par son maître, utilisé depuis de nombreuses années. Par conséquent, il est plus approprié de dire: «Le serviteur qui était sous la pluie était perdu parce qu'il n'avait nulle part où aller» plutôt que de dire: «Le serviteur attendait la pluie». D'ailleurs, le ciel d'aujourd'hui n'est pas un peu, le serviteur de cette dynastie Heian `

production «L'auteur vient d'écrire:" Le domestique attendait vraiment la forte pluie. " Cependant, même si la pluie s'arrête vraiment, le grand domestique ne peut rien en dire. Normalement, bien sûr, il devrait être possible de retourner dans l'impressionnante maison du maître comme un imbécile. Cependant, le terrible maître lui a donné un temps ridicule il y a quatre mille jours. Comme je l'ai déjà écrit, la ville de Kyoto était en déclin sans mille rues à cette époque. Ce n'est rien d'autre qu'un gâchis à la suite de ce petit déclin que ce gros serviteur a passé beaucoup de temps fou comme un imbécile de son maître qui l'utilise depuis de nombreuses années. Alors, plutôt que de dire: «Le serviteur attendait vraiment la forte pluie», dit-il, «Le serviteur qui était en panne sous la pluie n'avait nulle part où aller, et il était vraiment perdu en milliers de milliards. Il est plus approprié de dire comme un imbécile. En outre, le ciel d'aujourd'hui n'est pas un peu, et cette unité de mille milliards de serviteur de la dynastie géante Heian `

Hmmm Est-ce que ça va (est-ce que ça va?)

Pas vraiment

Le putain de déca Rashomon change fondamentalement de «pas» en «pas sérieux». Le mot "Faux" qui ne peut plus être renforcé est rendu grand du point de vue de la "certitude", n'est-ce pas?

python


def deco(text):
    nodes_s = t.parseToNode(text)
    output = ""
    count = 0
    while nodes_s:
        nodes_a = nodes_s.feature.split(",")
        count += 1
        if count > 1:
            if nodes_s.prev.feature.split(",")[0] in ["Coalm"] or nodes_s.prev.feature.split(",")[1] in ["Assistant de cas", "Phrase", "Point de lecture", "Assistants parallèles"]:
                random.seed(nodes_s.prev.surface + nodes_s.surface) #Semence avant(J'ai eu une erreur, alors ne faites référence qu'à prev)
                if nodes_a[:2] in [["nom", "Général"], ["nom", "固有nom"]]:
                    output += random.choice(["Gros","Gros","Geki","巨Gros","Il y a des éléphants","Dangereux","gros","En aucune façon","Impressionnant","Le plus fort du monde"])
                elif nodes_a[:2] in [["verbe", "Indépendance"]]:
                    output += random.choice(["Mecha Mecha","Comme un idiot", "sérieusement", "Ça fait mal"])
        if nodes_a[0] == "adjectif" and nodes_a[6] == "Absent":
            output += "sérieusement"
        output += nodes_s.surface
        nodes_s = nodes_s.next
    return output

contribution «L'auteur vient d'écrire:« Le domestique attendait la pluie ». Cependant, même si la pluie s'arrête, le serviteur n'a aucune idée de ce qu'il doit faire. Normalement, bien sûr, je devrais pouvoir rentrer chez mon mari. Cependant, son maître lui a donné du temps libre il y a 45 jours. Comme je l'ai déjà écrit, la ville de Kyoto était en déclin à cette époque. Le fait que ce serviteur ait eu du temps par son maître, qui avait été utilisé pendant de nombreuses années, n'est rien d'autre que la petite suite de ce déclin. Par conséquent, il est plus approprié de dire: «Le serviteur qui était sous la pluie était perdu parce qu'il n'avait nulle part où aller» plutôt que de dire: «Le serviteur attendait la pluie». De plus, le ciel d'aujourd'hui n'a pas été un peu influent sur le Sentimentalisme, serviteur de la dynastie Heian. La pluie qui a commencé à tomber depuis l'époque de Shin est toujours implacable. Ainsi, le serviteur a essayé de gérer la vie de demain quoi qu'il arrive, pour ainsi dire, essayant de faire quelque chose qui ne pouvait pas être aidé, tout en suivant les pensées errantes, le bruit de la pluie qui secouait Suzaku Oji il y a quelque temps. J'écoutais sans entendre. ''

** Sortie ** (Depuis que j'ai joué avec la graine, le nombre aléatoire généré plus tôt a changé) «L'auteur vient d'écrire de façon désagréable:« Le domestique attendait une pluie terrible ». Cependant, même si la pluie s'arrête comme un imbécile, un terrible serviteur ne peut rien dire de spécial à ce sujet. Normalement, bien sûr, je devrais pouvoir retourner sérieusement dans la maison du maître géant. Cependant, le maître féroce m'a donné énormément de temps libre il y a 45 000 jours. Comme je l'ai déjà écrit, la ville de Kyoto était en déclin sans mille rues à cette époque. Le fait que le serviteur le plus fort de ce monde ait été gâché avec un temps énorme de son maître, qui a été utilisé comme un imbécile pendant de nombreuses années, n'est rien d'autre qu'un gâchis à la suite ridicule de ce déclin. Ainsi, plutôt que de dire "le serviteur attendait la pluie et le désordre terribles", il a dit: "Le serviteur qui a été foiré sous la pluie était vraiment foiré, pas vraiment où il allait. Il est plus approprié de dire que c'était désagréable. De plus, le ciel d'aujourd'hui n'est pas un peu influent, affectant le Sentimentalisme, serviteur de cette ridicule dynastie Heian. La pluie qui a commencé à arroser sérieusement de la sculpture ridicule de Shin n'est toujours pas grave. Donc, le terrible serviteur essaie de gérer la vie de demain pour le moment, peu importe ce qu'il se sent mal à l'aise - essayer de faire quelque chose qui ne peut pas être aidé, En traçant autour de moi, j'écoutais le bruit de la pluie déconner sur Big Suzaku Oji il y a quelque temps, même si je l'entendais comme un idiot. ''

Je ne comprends pas, mais ...

apocalypse

Ça devient un peu épicé alors je veux le finir Créez une fonction ** obiv ** pour faire baiser des adjectifs. Pour les épées, utilisez la liste que je viens de publier, et ** doublez la fonction ** pour ajouter de la profondeur aux épées. (Mettons le putain de taux à environ 50% pour ne pas être redondant)

python


def obiv(text):
    nodes_s = t.parseToNode(text)
    output = ""
    count = 0
    while nodes_s:
        count += 0
        nodes_a = nodes_s.feature.split(",")
        if nodes_a[0] == "adjectif":
            random.seed(nodes_s.surface + str(count))
            if random.random() < 0.5:
                output += random.choice(["Super","Mecha Mecha","Comme un idiot","sérieusement","Merde","Extrêmement","Gachi","Méchant","Dans la mesure où il reste dans l'histoire humaine"])
        output += nodes_s.surface
        nodes_s = nodes_s.next
    return output
print("\n sortie:\n" + obiv(obiv(makuring(deco(embod(incr(inp)))))))

contribution «L'auteur vient d'écrire:« Le domestique attendait la pluie ». Cependant, même si la pluie s'arrête, le serviteur n'a aucune idée de ce qu'il doit faire. Normalement, bien sûr, je devrais pouvoir rentrer chez mon mari. Cependant, son maître lui a donné du temps libre il y a 45 jours. Comme je l'ai déjà écrit, la ville de Kyoto était en déclin à cette époque. Le fait que ce serviteur ait eu du temps par son maître, qui avait été utilisé pendant de nombreuses années, n'est rien d'autre que la petite suite de ce déclin. Par conséquent, il est plus approprié de dire: «Le serviteur qui était sous la pluie était perdu parce qu'il n'avait nulle part où aller» plutôt que de dire: «Le serviteur attendait la pluie». De plus, le ciel d'aujourd'hui n'a pas été un peu influent sur le Sentimentalisme, serviteur de la dynastie Heian. La pluie qui a commencé à tomber depuis l'époque de Shin est toujours implacable. Ainsi, le serviteur a essayé de gérer la vie de demain quoi qu'il arrive, pour ainsi dire, essayant de faire quelque chose qui ne pouvait pas être aidé, tout en suivant les pensées errantes, le bruit de la pluie qui secouait Suzaku Oji il y a quelque temps. J'écoutais sans entendre. ''

production «L'auteur vient d'écrire de façon désagréable:« Le domestique attendait une pluie terrible ». Cependant, même si la pluie s'arrête comme un imbécile, un terrible serviteur ne peut rien dire de spécial à ce sujet. Normalement, bien sûr, je devrais pouvoir retourner sérieusement dans la maison du maître géant. Cependant, le maître féroce m'a donné énormément de temps libre il y a 45 000 jours. Comme je l'ai déjà écrit, la ville de Kyoto était en déclin sans mille rues à cette époque. Le fait que le serviteur le plus fort de ce monde ait été gâché avec un temps énorme de son maître, qui a été utilisé comme un imbécile pendant de nombreuses années, n'est rien d'autre qu'un gâchis à la suite ridicule de ce déclin. Ainsi, plutôt que de dire "le serviteur attendait la pluie et le désordre terribles", il a dit: "Le serviteur qui a été foiré sous la pluie était vraiment foiré, pas vraiment où il allait. Il est plus approprié de dire que c'était désagréable. De plus, le ciel d'aujourd'hui semble vraiment sérieux et pas un peu, ce qui a influencé le Sentimentalisme, serviteur de cette ridicule dynastie Heian. La pluie qui a commencé à arroser sérieusement de la sculpture ridicule de Shin n'est toujours pas grave. Donc, le terrible serviteur essaie de gérer la vie de demain pour le moment, peu importe ce qu'il se sent mal à l'aise - essayant de faire quelque chose qui ne peut pas être aidé, et il se sent mal à l'aise avec les pensées qui ne sont pas sérieuses. En traçant autour de moi, j'écoutais le bruit de la pluie déconner sur Big Suzaku Oji il y a quelque temps, même si je l'entendais comme un idiot. '' Est-ce que c'est bon de le finir, ça devient un peu épicé

Impressions

Je ne pourrais pas le rendre aussi précis ... Je pense que j'aurais pu faire quelque chose d'un peu plus avancé avec Cabocha, mais cela a posé beaucoup de problèmes ... J'aimerais réessayer si l'installation réussit un jour. Je voulais un «idiome changeant» (par exemple «à une vitesse subsonique»)

référence

https://web.archive.org/web/20171212152621/http://adsmedia.hatenablog.com/entry/2016/10/20/002211 https://qiita.com/pocket_kyoto/items/1e5d464b693a8b44eda5 https://qiita.com/matsuatsu/items/fc696741a994f011f91e

[^ 1]: Il y a un endroit où deux "putain de déca" sont comme un ensemble, mais le sens est aussi compris par "déca Rashomon", et en y ajoutant "stupide", vous pouvez aussi faire "stupid Rashomon", donc séparé Je pensais que c'était fait.

Recommended Posts

Je voulais générer une phrase comme "Fucking Rashomon" (ancienne forme)
J'ai essayé de générer une chaîne de caractères aléatoire
J'ai essayé de faire un "putain de gros convertisseur de littérature"
Je veux générer rapidement UUID (memo memo) ~ Edition Python ~
[Échec] Je voulais générer des phrases en utilisant TextRegressor de Flair
Une histoire sur la volonté de modifier un peu le site d'administration de Django
Je veux générer automatiquement un nom de groupe de metal moderne
J'ai fait une commande pour générer un commentaire pour une table dans Django
Je voulais le faire comme exécuter un cas de test pour AtCoder.
Je voulais créer une présentation intelligente avec Jupyter Notebook + nb present
Je voulais convertir ma photo de visage en un style Yuyu.
Je voulais faire quelque chose comme la pipe d'Elixir en Python
Je voulais résoudre le problème ABC164 A ~ D avec Python
[Django] Je voulais tester lors du POST d'un fichier volumineux [TDD]