Пример #1
0
    def Finalsummary(Num, JueLv, Keyword):
        # characters = input("Please input characters:")
        characters = Keyword
        # # 根据关键词返回类别标签
        label = word2vec_demo.Word2vec_similar.class_tags(characters)
        print(label)
        Imbalance_words = word2vec_demo.Word2vec_similar.similar_6words(
            characters, label)
        if '边塞征战' == label:
            class_tag = 'biansai'
        elif '写景咏物' == label:
            class_tag = 'jingwu'
        elif '山水田园' == label:
            class_tag = 'shanshui'
        elif '思乡羁旅' == label:
            class_tag = 'sixiang'
        else:
            class_tag = 'poetrySong'

        checkpointsPath = "E:\Desk\MyProjects\Python/NLP_Demo1\File_jar\generate_poem/" + class_tag  # checkpoints location
        trainPoems = "E:\Desk\MyProjects\Python/NLP_Demo1\File_jar\generate_poem\Poetry_class/" + class_tag + ".txt"  # training file location
        # 训练数据时用,依次更改诗的种类,路径
        # trainPoems = "E:\Desk\MyProjects\Python/NLP_Demo1\File_jar\generate_poem\Poetry_class/yongshi.txt"
        # checkpointsPath = "E:\Desk\MyProjects\Python/NLP_Demo1\File_jar\generate_poem/yongshi"
        trainData = data.POEMS(trainPoems)
        MCPangHu = model.MODEL(trainData)  # 带参初始化
        #***** 分别训练5类模型
        # MCPangHu.train(checkpointsPath)
        poems = MCPangHu.testHead(characters, Imbalance_words, checkpointsPath,
                                  Num, JueLv)
        return poems
Пример #2
0
def main(trainPoems, checkpointsPath):
    global Str
    args = defineArgs()
    trainData = data.POEMS(trainPoems)
    MCPangHu = model.MODEL(trainData)
    if args.mode == "train":
        MCPangHu.train()
    else:
        if args.mode == "test":
            poems = MCPangHu.test(checkpointsPath)
            Str = MCPangHu.Get_Str()
        else:
            characters = input("please input chinese character:")
            poems = MCPangHu.testHead(characters)
Пример #3
0
                    print("no checkpoint found!")

            for epoch in range(epochNum):
                X, Y = self.trainData.generateBatch()
                epochSteps = len(X)  # equal to batch
                for step, (x, y) in enumerate(zip(X, Y)):
                    a, loss, gStep = sess.run([trainOP, cost, addGlobalStep], feed_dict={gtX: x, gtY: y})
                    print("epoch: %d, steps: %d/%d, loss: %3f" % (epoch + 1, step + 1, epochSteps, loss))
                    if gStep % saveStep == saveStep - 1:  # prevent save at the beginning
                        print("save model")
                        saver.save(sess, os.path.join(evaluateCheckpointsPath, type), global_step=gStep)

                X, Y = self.trainData.generateBatch(isTrain=False)
                print("evaluating testing error...")
                wrongNum = 0
                totalNum = 0
                testBatchNum = len(X)
                for step, (x, y) in enumerate(zip(X, Y)):
                    print("test batch %d/%d" % (step + 1, testBatchNum))
                    testProbs, testTargets = sess.run([probs, targets], feed_dict={gtX: x, gtY: y})
                    wrongNum += len(np.nonzero(np.argmax(testProbs, axis=1) - testTargets)[0])
                    totalNum += len(testTargets)
                print("accuracy: %.2f" % ((totalNum - wrongNum) / totalNum))



if __name__ == "__main__":
    trainData = data.POEMS(trainPoems, isEvaluate=True)
    MCPangHu = EVALUATE_MODEL(trainData)
    MCPangHu.evaluate()
Пример #4
0
# coding: UTF-8

from config import *
import data
import model


def defineArgs():
    """define args"""
    parser = argparse.ArgumentParser(description="Chinese_poem_generator.")
    parser.add_argument("-m",
                        "--mode",
                        help="select mode by 'train' or test or head",
                        choices=["train", "test", "head"],
                        default="test")
    return parser.parse_args()


if __name__ == "__main__":
    args = defineArgs()
    trainData = data.POEMS(trainPoems)
    MCPangHu = model.MODEL(trainData)
    if args.mode == "train":
        MCPangHu.train()
    else:
        if args.mode == "test":
            poems = MCPangHu.test()
        else:
            characters = input("please input chinese character:")
            poems = MCPangHu.testHead(characters)
Пример #5
0
   github: https://github.com/hjptriplebee
''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' ''
from config import *
import data
import model


def defineArgs():
    """define args"""
    parser = argparse.ArgumentParser(description="Chinese_poem_generator.")
    parser.add_argument("-m",
                        "--mode",
                        help="select mode by 'train' or test or head",
                        choices=["train", "test", "head", "header"],
                        default="test")
    return parser.parse_args()


if __name__ == "__main__":
    args = defineArgs()
    trainData = data.POEMS(trainPoems, path_word2vec)
    MCPangHu = model.MODEL(trainData)
    if args.mode == "train":
        MCPangHu.train()
    else:
        if args.mode == "test":
            poems = MCPangHu.test()
        elif args.mode == 'head':
            poems = MCPangHu.testHead(characters)
        elif args.mode == 'header':
            poems = MCPangHu.testHeader(header)