Skip to content

基于三国演义小说,使用tensorflow,keras构建语言模型,根据一段文本,预测新字和生成新文本。

Notifications You must be signed in to change notification settings

flowers2023/lm-LSTM

Repository files navigation

lm-LSTM

通过训练小说《三国演义》,对给定的文本,预测下一个汉字。
1.对训练数据ETL,生成<N个汉字,N+1汉字>方式;
2.进行独热(one-hot)编码;
3.使用LSTM训练

环境

python3.6 tensorflow1.9

模型训练

python lm_lstm.py

结果

Epoch 1000/1000
201260/201260 [==============================] - 116s 578us/step - loss: 3.2507 - acc: 0.5207
Iteration: 1

--------diversity: 0.2
--------Generating with seed: 赶来,忠又出阵,战数
赶来,忠又出阵,战数十里来攻,杀之。”主出战二将相孔明曰:“孔明公中上皆死,其不用吾也。今日曹操矣吾!”后人见喜,皆曰:“汝此是计西来,不可不也。”操曰:“孔明公何故?”孔明曰:“吾自往州郡,说必不可。”操见其,言未毕。方曰:“此时已至曹操!不可轻去。”孔明曰:“诸葛亮闻此时,有一大小,不能先起矣。”延从之,却说张飞引兵十万骑十万里十里,曹操粮草马皆,用众军皆回。孔明问曰:“前有一计何?”当曰:“此。回见孔明,不知其意。遂引兵前至蜀兵,使人昭引众官入城。孔明曰:“子龙二更时分,分三十余里来,分兵五万,后至江必为;然其面,乃地江也。今不已二数。曹操下将,无里五十里之事,一声大寨。今操出,一军将军中;一军飞日云长来迎。战兵,被张翼德杀得一人,大惊曰:“西将军兵到!”夫人回见山处,用兵一人来南:“公公有书名欲往,与汝等人人将军。”一人回报。布闻言:“来日、赵云,不下军中。权曰:“前面一路,人报知;一日之前,前面三路

TODO

lm_lstm.py采用one-hot编码,即每条训练数据是1x4000维的矩阵,若分箱成20x4000维的矩阵效果理应更加,这样可以充分利用LSTM的前后汉字序列关系。

写在最后

训练的数据大概180万汉字,4000个字(4000个预测lable)。
最后的训练准确率,50%左右,若结合lm-ken或ocr的候选字,效果或许会更好。

About

基于三国演义小说,使用tensorflow,keras构建语言模型,根据一段文本,预测新字和生成新文本。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages