[RUBY] Générez automatiquement un texte d'introduction pour les œuvres audiovisuelles avec l'API DMM, MeCab et la chaîne Markov

Publication du livre électronique "Artificial Intelligence Porn"

Porno d'intelligence artificielle: texte érotique écrit par un ordinateur Le résultat généré de cet article a été converti en livre électronique. Nous avons publié 100 phrases d'environ 200 à 400 caractères. Si vous êtes intéressé, s'il vous plaît!

Générer automatiquement

J'ai été impressionné par cet article. Je voulais faire quelque chose moi-même, mais les obstacles sont élevés pour la génération automatique à l'aide du Deep Learning, alors j'ai décidé d'essayer d'abord la génération automatique en utilisant la chaîne Markov. [Evangelion] Essayez de générer automatiquement des lignes de type Asuka avec Deep Learning

C'est vrai! AV!: Satisfait:

Des données sont nécessaires pour la génération automatique. Je ne comprends pas l'anime, donc même si j'imite Evangelion, je ne m'excite pas. Qu'est-ce qui fait monter votre tension? ... J'ai tout de suite proposé une introduction à l'AV.

Avantages de l'introduction AV

――Il semble qu'il y ait beaucoup de données avec environ 120 caractères?

Enregistrer l'API DMM

https://affiliate.dmm.com/api/guide/ C'est pourquoi j'ai commencé immédiatement. Veuillez consulter ce guide d'utilisation.

Obtenez la présentation du travail

Je l'ai mentionné ici. L'API DMM est ver3.0, elle doit donc être modifiée. http://akms.hateblo.jp/entry/2013/05/24/234703

code

J'ai reçu le texte d'introduction de 1000 œuvres et je l'ai écrit dans ero.txt.

rb::dmm.rb


# -*- coding: utf-8 -*-

require 'open-uri'
require 'rexml/document'

def getURL(offsetNum)
	url = "https://api.dmm.com/affiliate/v3/ItemList?"
	queries = []

	params = {
	  "api_id"       => 'YOUR_API_ID',
	  "affiliate_id" => 'YOUR_AFFILIATE_ID',
	  "site"         => 'DMM.R18',
	  "service"      => 'digital',
	  "floor"        => 'videoa',
	  "sort"         => 'rank',
	  "offset"       => offsetNum,
	  "hits"         => 100,
	  "output"       => "xml"
	}

	params.each_pair do |key,value|
	  queries.push("#{key}=#{value}")
	end

	url += queries.join("&")

	return url

end

#Ouvrez un fichier texte pour l'écriture
File.open("ero.txt", "w") do |file|

	#Bouclez autant de fois que le nombre de décalages que vous souhaitez obtenir
	10.times do
		url = getURL(num)
		res = open(url)
		REXML::Document.new(res).elements.each("xml/result/items/item") do |element|
			#Rédiger une introduction au travail
			file.puts element.elements['comment'].text
		end
	end
end

Effectuer une chaîne de Markov

Préparez MeCab

Je pense qu'il y a plusieurs façons de le faire, mais j'ai lu l'article ci-dessous et l'ai configuré. http://qiita.com/grachro/items/4fbc9bf8174c5abb7bdd

Préparation du script de la chaîne de Markov

J'ai fait référence à ce script. https://github.com/o-tomox/TextGenerator

Depuis que je l'ai exécuté dans la série Python 3, j'ai modifié le script ci-dessus de 2 séries à 3 séries. https://gist.github.com/naoyashiga/4dfaa7e2a5222a9cadd9

Le texte d'introduction est généré automatiquement

Obtenez un texte d'introduction

$ ruby dmm.rb

Écrire dans la base de données

$ python PrepareChain.py

Généré automatiquement

$ python GenerateText.py

Résultat de sortie

J'ai pu sortir: lunettes de soleil:

Oups, le contenu semble trop obscène! Malheureusement, je ne peux pas le publier ici: fatigué:

Si vous êtes intéressé, faisons-le vous-même!

Considération et perspectives

――Je veux essayer le Deep Learning ――Je veux pouvoir ajuster la quantité de texte généré ――Je souhaite générer sur la base d'un plus grand nombre de phrases

Postscript

J'ai essayé d'utiliser un réseau neuronal. L'API DMM, char-rnn (réseau neuronal récurrent) génère automatiquement un texte d'introduction pour les œuvres audiovisuelles - pas bon mais excellent

Recommended Posts

Générez automatiquement un texte d'introduction pour les œuvres audiovisuelles avec l'API DMM, MeCab et la chaîne Markov
Effectuez une recherche Twitter à partir de Python et essayez de générer des phrases avec la chaîne de Markov.
Installez tweepy avec pip et utilisez-le pour l'API 1.1
Essayez l'analyse morphologique et la chaîne de Markov avec Django (Ari avec beaucoup de marge d'amélioration)