Я участвую в творческом конкурсе «Праздник середины осени».Творческий конкурс «Праздник середины осени»Я участвую в творческом конкурсе «Праздник середины осени».Творческий конкурс «Праздник середины осени»
Стихи Word2Vec
Роль Word2Vec, вероятно, уже известна миру, но Word2Vec, который мы обычно используем, обучается с помощью статей, потому что я предпочитаю поэзию, поэтому я намеренно использую более 50 000 стихотворений Тан и 260 000 стихотворений песни для обучения Word2Vec, процесс выглядит следующим образом. :
- Используется только основное содержание каждого стихотворения или слова, а нерелевантный контент, такой как название, автор и примечания, обрезается.
- Поскольку отдельные иероглифы в стихотворениях очень богаты по смыслу, все стихотворения или слова разделены на отдельные китайские иероглифы и записаны в song_tang.txt, каждая строка представляет собой стихотворение или слово, и каждое слово отделяется пробелом.
- Поскольку в стихах также много слов, которые очень артистичны, поэтому используйте jieba, чтобы разделить все стихотворения или слова на слова, каждая строка представляет собой стихотворение или слово, и каждое слово отделяется пробелом, и добавляется к song_tang .txt-файл.
- Модель обучалась на 100 эпох с использованием Word2Vec в инструменте gensim.
Смотрите мой репозиторий для конкретного кода, вот лишь краткое введение в обучающий код:
# -*- coding: utf-8 -*-
import logging
from gensim.models import word2vec
def main():
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
sentences = word2vec.LineSentence("song_tang.txt")
model = word2vec.Word2Vec(sentences, vector_size=250, epochs=100)
#保存模型,供日後使用
model.save("word2vec.model")
if __name__ == "__main__":
main()
Код теста также прост:
# -*- coding: utf-8 -*-
from gensim.models import word2vec
from gensim import models
import logging
def main():
model = models.Word2Vec.load('word2vec.model')
try:
for word in ['月','蟾','嫦娥','兔','中秋','赏月','桂花','花灯','饼','桂花']:
q_list = word.split()
if len(q_list) == 1:
topn = 5
print("相似詞前 %d 排序"%topn)
res = model.wv.most_similar(q_list[0],topn = topn)
for item in res:
print(word,'-->',item[0]+","+str(item[1]))
except Exception as e:
print(repr(e))
if __name__ == "__main__":
main()
В основном выбираются общие изображения, связанные с Праздником середины осени, в том числе: луна, жаба, Чанъэ, кролик, Праздник середины осени, наблюдение за луной, душистый османтус и фонари. тоже мерили,но "лунные лепешки" не вырезали в таком большом сборнике стихов.Неужели древние называли это слово "лунная лепешка" другим именем? Если это так, я получу Нобелевскую премию за это открытие. Содержание теста выглядит следующим образом.По результатам, изображения в основном похожи:
相似詞前 5 排序
月 --> 影,0.5359682440757751
月 --> 雪,0.5294367074966431
月 --> 日,0.5167578458786011
月 --> 明月,0.5035041570663452
月 --> 晚,0.4992968440055847
相似詞前 5 排序
蟾 --> 月,0.4944111108779907
蟾 --> 蟾蜍,0.4766398072242737
蟾 --> 娥,0.4235338866710663
蟾 --> 星,0.41982918977737427
蟾 --> 嫦,0.41793638467788696
相似詞前 5 排序
嫦娥 --> 常娥,0.5356565117835999
嫦娥 --> 姮,0.46553120017051697
嫦娥 --> 素娥,0.44325411319732666
嫦娥 --> 蝉娟,0.44045501947402954
嫦娥 --> 嫦,0.4265734851360321
相似詞前 5 排序
兔 --> 鹿,0.46078577637672424
兔 --> 鼠,0.42531102895736694
兔 --> 狸,0.4184684455394745
兔 --> 獸,0.4146558344364166
兔 --> 兎,0.4029492437839508
相似詞前 5 排序
中秋 --> 重陽,0.5198861360549927
中秋 --> 今宵,0.5187360048294067
中秋 --> 清秋,0.5057112574577332
中秋 --> 今夕,0.4786747694015503
中秋 --> 元宵,0.478258341550827
相似詞前 5 排序
赏月 --> 吟风,0.42945602536201477
赏月 --> 不知今夕何夕,0.40893059968948364
赏月 --> 围棋,0.4009520709514618
赏月 --> 曾共赏,0.3729349374771118
赏月 --> 三国,0.3720923066139221
相似詞前 5 排序
桂花 --> 丹桂,0.46107402443885803
桂花 --> 桂子,0.44184908270835876
桂花 --> 菊花,0.4242440164089203
桂花 --> 桂香浮,0.40674737095832825
桂花 --> 桂枝,0.3999846577644348
相似詞前 5 排序
花灯 --> 宝幄,0.48819929361343384
花灯 --> 缟夜,0.48614564538002014
花灯 --> 暗记,0.450831800699234
花灯 --> 未晓,0.4482809007167816
花灯 --> 铜壶,0.4456891119480133
LSTM пишет скрытые стихи
Написание стихов с помощью искусственного интеллекта уже является очень распространенной операцией, потому что LSTM может хорошо улавливать семантическую связь контекста, а короткий и лаконичный текст, такой как стихи, очень подходит для LSTM.Базовое объяснение жесткого ядра LSTM]. Здесь мы в основном даем краткое введение в обработку данных, Процедуры других процессов построения моделей и обучения в основном одинаковы и здесь не будут повторяться.
Текст – это данные с ярко выраженными временными рядами, как и стихи. Каждое стихотворение состоит из слов с богатым смыслом. Когда мы вводим текущее слово, нам нужно предсказать следующее слово, что определяет формат ввода. Например:
原句:白日依山尽,黄河入海流
我们首先要使用"^"表示诗句的开始,"$"表示诗句的结束
变为:^白日依山尽,黄河入海流$
我们设置了最大的诗句长度为 20 ,使用"*"表示未知符号进行填充
变为:^白日依山尽,黄河入海流$*******
其对应的训练目标因为需要对当前时刻的输入来预测下一个时刻的输出,将上面的字符串整体右移,即:y[:-1] = x[1:]
目标:白日依山尽,黄河入海流$********
最后使用字典,将上面的字符串中的每个字映射为数字就完成了数据的预处理
После обучения модели процесс использования модели для написания стихотворения аналогичен описанному выше: каждый раз, когда вводятся слово предыдущего момента и состояние предыдущего момента, предсказывается текущее слово и конечные условия. выполняются, например, сколько слов достаточно, или пока период не будет предсказан.
Тогда давайте начнем тестировать написание тибетских головных стихов. В Празднике середины осени мы в основном используем какие-то общие персонажи и темы. Честно говоря, это похоже на искусственную умственную отсталость, но мы уже сделали первый шаг. После этого, мы можем продолжать улучшать качество написанных стихов.В конце концов, модель также очень проста, это просто сцена и радость, чтобы помочь всем на Празднике середины осени. Смотрите мой репозиторий для конкретного кода.
生成藏头诗 ---> 嫦娥奔月
嫦娥属星汉,娥皇历七年。奔驰一千分,月下腾双翼。
生成藏头诗 ---> 吴刚伐桂
吴转唐皇观,刚将镇选门。伐乏天上命,桂下朝建皇。
生成藏头诗 ---> 中秋团圆
中庭窥砌木,秋风下帘绿。团圆粉扇衰,圆珰喷祥雨。
生成藏头诗 ---> 中秋团圆阖家欢乐
中原风紧动明时,秋树三川带路长。团莺盖影寻仙籍,圆光丽月照霜轮。阖章合在唯前后,家在将齐退困浮。欢趣梦阑鼙鼓至,乐声幽鸟碧云空。
生成藏头诗 ---> 嫦娥奔月广寒成仙
嫦娥几多拜,娥霜五百枝。奔郎避众地,月酒动纨扇。广皓清云表,寒光照夕风。成姿素羽翼,仙殿尚依然。
На самом деле, моя модель также может генерировать пятисимвольные четверостишия и семисимвольные четверостишия или случайным образом генерировать стихи.
Семь четверостиший:
输入:我自横刀向天笑
输出:我自横刀向天笑,有时苍虎皆久住
Четверостишия из пяти слов:
输入:床前明月光
输出:床前明月光,自恐奈归悲
Напишите произвольное стихотворение:
巫峡红陵星别来,相公属望杳堪伤。盈浪临已解人去,今日江村弄云水。绿云虽出我真名,况值山川未死歌。但见西边断征客,又逢无事已千年。吴园肠断浦城北,八月曾归在路岐。
Seq2Seq написать куплет
Я и раньше писал стихи, но в этот раз я изменю свой вкус и буду использовать Seq2Seq для написания куплетов. Seq2Seq просто говорит о том, что левая и правая структуры RNN связаны, левая структура RNN используется для кодирования, а закодированный результат передается в правую структуру RNN для декодирования.Студенты со слабой базой могут перейти, чтобы увидеть мои [Подробная информация об обучении и прогнозировании Seq2Seq, а также советы по оптимизации], вот небольшой случай я понял [перевод слов] Очень интересно понять принцип и процесс Seq2Seq. Классические приложения этой модели обычно используются в области машинного перевода, и писать двустишия немного избыточно. Смотрите мой репозиторий для конкретного кода.
Построение Seq2Seq также является классической процедурой.Обычная структура кода заключается в написании кодировщика и декодера.Конкретные детали можно копать глубоко, и есть много приемов, которые могут улучшить производительность, такие как добавление поиска луча на этапе тестирования, добавление механизма внимания и так далее.
На самом деле, принцип построения Seq2Seq очень прост, ключ в том, что есть много деталей, на которые следует обратить внимание при разработке кода реализации. Например, на этапе декодера при использовании beamsearch или greedysearch нужно изменить входные данные, здесь для данных используется около 770 000 куплетов, скачанных из интернета.
При написании куплетов у вас должен быть хороший первый куплет. Посмотрите, если я использую Праздник середины осени, чтобы сделать это правильно, я напишу верхний куплет, а модель выйдет из нижнего куплета. Модель здесь работала только около одна эпоха, а GPU работал часа 2. Эффект не очень, каждый может:
上联:嫦娥无言广寒宫
下联:玉女有幸福福门
上联:此去揽月几时回
下联:何处相思一夜来
上联:少年不识愁滋味
下联:无处无非苦读书
上联:登月成功
下联:出山成佛
上联:嫦娥偷药
下联:玉女出头
上联:广寒宫里屋两人
下联:大雅堂前有美人
上联:吴刚伐树
下联:李老登堂
репозиторий кода
- Я загрузил хранилище учебных стихотворений Word2Vec для слов и векторов слов из одного слова, чтобы все могли их выучить.GitHub.com/Ванг Дайя/…
- Я загрузил репозиторий для написания стихов RNN, чтобы все могли научиться, пожалуйста, начните:GitHub.com/Ванг Дайя/…
- Я загрузил хранилище Seq2Seq для написания куплетов, чтобы все могли выучить.Найти начало:GitHub.com/Ванг Дайя/…
благодарный
- В стихах используются стихи Сун и Тан, собранные на этом складе. Спасибо за вашу тяжелую работу:GitHub.com/Chinese-POE…
- Данные куплета скачиваются отсюда:disk.baidu.com/is/126SU TT в 0…Пароль: рут9