sunking1
sunking1
2020-03-18 14:55
采纳率: 0%
浏览 871

如何建立自己的NLP训练模型

基于PYTHON开发一个NLP自然语言处理模型。最终结果希望能输入标题自动匹配相应的文本内容。
已经实现了语言素材的采集,采用GENSIM进行摘要和文本内容的匹配。现在的匹配算法有问题,匹配程度太低,给出的标题不能匹配到合适的文本,需要改进。

目前想法是自己建立人工智能训练模型,可以设置每个标题中不同关键词的优先级和先后顺序以及权重,然后不断人工进行标记和素材录入进行模型训练,来提升模型的精确性。需要帮助请大神支招!

具体流程是如何,采用什么模型?具体步骤是什么样的?



def CompareArticle1(ArticleSection,Articlesummary):
# 文本集和搜索词
    #texts = ['要深化大数据、人工智能等研发应用。当下,云计算、物联网、人工智能等技术飞速发展,并且在政务的“智能化”上发挥着日益重要的作用,要建设服务型政府,政务的“智能化”是必然方向。“互联网+政务服务”解决了信息采集、传输、监控等问题,能够促进各部门间数据共享,让群众和企业少跑腿、好办事、不添堵',


    #print(type(texts))
    texts=ArticleSection

# 1、将【文本集】生成【分词列表】
    texts = [lcut(text) for text in texts]
# 2、基于文本集建立【词典】,并获得词典特征数
    dictionary = Dictionary(texts)
    num_features = len(dictionary.token2id)
# 3.1、基于词典,将【分词列表集】转换成【稀疏向量集】,称作【语料库】
    corpus = [dictionary.doc2bow(text) for text in texts]
# 3.2、同理,用【词典】把【搜索词】也转换为【稀疏向量】
    kw_vector = dictionary.doc2bow(lcut(keyword))
# 4、创建【TF-IDF模型】,传入【语料库】来训练
    tfidf = TfidfModel(corpus)
# 5、用训练好的【TF-IDF模型】处理【被检索文本】和【搜索词】
    tf_texts = tfidf[corpus]  # 此处将【语料库】用作【被检索文本】
    tf_kw = tfidf[kw_vector]
# 6、相似度计算
    sparse_matrix = SparseMatrixSimilarity(tf_texts, num_features)
    similarities = sparse_matrix.get_similarities(tf_kw)
    #similarities = sparse_matrix.get_similarities(tf_texts)

    #print("类型")
    #print(similarities)
    #升序排列用于输出,不能重新排序会打乱原来的文本的位置。
    #similarities2= sorted(similarities,reverse=True) 
    #print(similarities2)
    #print(similarities)

    #print(sparse_matrix)
    #for e, s in enumerate(similarities, 2):
    #    print('kw 与 text%s说 相似度为:%.2f' % (e, s))
    return similarities
def find_sub_max(arr, n):
    NumIndex=0
    arr_=[]
    for i in range(n-1):
        arr_ = arr
        arr_[np.argmax(arr_)] = np.min(arr)
        arr = arr_
    NumIndex=np.argmax(arr_)
    print("# arr中第{}大的数为{},位于第{}位".format(n,np.max(arr_), NumIndex))
    return NumIndex


  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

相关推荐