zoukankan      html  css  js  c++  java
  • 【NLP】pyhanlp flask

    D:ProgramDataAnaconda3Libsite-packagespyhanlp\__init__.py 加入

    WordVectorModel = LazyLoadingJClass('com.hankcs.hanlp.mining.word2vec.WordVectorModel')

    # coding=utf-8
    from flask import Flask
    from flask import request
    from flask import jsonify
    from flask import make_response,Response
    from flask_cors import CORS
    from pyhanlp import *
    
    port = 9999
    app = Flask(__name__)
    CORS(app, supports_credentials=True)
    
    @app.route('/')
    def index():
        str = "Hello, AI Server!"
        print(str)
        return str
    
    # 成功请求
    def successResp(data):
        return jsonify(code=0, message="success", data=data)
    
    # 错误请求
    def errorResp(msg):
        return jsonify(code=-1, message=msg)
    
    
    # 分词服务
    @app.route('/NLPWordSplit', methods=['POST'])
    def NLPWordSplit():
        Article = request.form.get('Article')
        print(Article)
    
        if Article == None or Article == "" :
            rst = make_response(errorResp("请输入正确的数据!"))
            rst.headers['Access-Control-Allow-Origin'] = '*'
            return rst
    
        word = ""
        for term in HanLP.segment(Article):
            curWord = str(term.word)
            if len(curWord) != 0:
                word = word + " " + curWord
        print(word)
    
        return getResult(word)
    
    # 词向量服务
    @app.route('/NLPWordNearest', methods=['POST'])
    def NLPWordNearest():
        Word = request.form.get('Word')
        print(Word)
    
        if Word == None or Word == "" :
            rst = make_response(errorResp("请输入正确的数据!"))
            rst.headers['Access-Control-Allow-Origin'] = '*'
            return rst
        try:
            # WordVectorModel = LazyLoadingJClass('com.hankcs.hanlp.mining.word2vec.WordVectorModel')
            # print(WordVectorModel)
            # MODEL_FILE_NAME = r"E:Model.txt"
            # # 初始化模型
            # word2vec = WordVectorModel(MODEL_FILE_NAME)
            # print(word2vec)
            if word2vec != None:
                print("相关词分析")
                word = word2vec.nearest(Word)
                print(word)
                data = ""
                for x in word:
                    if data == "":
                        data = str(x).replace("=",":")
                    else:
                        data = data + "," + str(x).replace("=",":")
                print(data)
    
                word = "{" + data + "}"
                # word = json.dumps(word)
                # word = ','.join(word)
                print(word)
                return getResult(word)
            else:
                rst = make_response(errorResp("单词分析错误!"))
                rst.headers['Access-Control-Allow-Origin'] = '*'
                return rst
        except Exception as e:
            print("Exception:",e)
        finally:
            print("OK")
    
    def getResult(word):
        if word != "":
            # 如果成功返回预测结果
            rst = make_response(successResp(word))
            rst.headers['Access-Control-Allow-Origin'] = '*'
            return rst
        else:
            # 如果失败返回错误信息
            rst = make_response(errorResp(word))
            rst.headers['Access-Control-Allow-Origin'] = '*'
            return rst
    
    word2vec = None
    if __name__ == '__main__':
        # if not jpype.isThreadAttachedToJVM():
        #     jpype.attachThreadToJVM()
        # WordVectorModel = jpype.JClass("com.hankcs.hanlp.mining.word2vec.WordVectorModel")
        # print(WordVectorModel)
        MODEL_FILE_NAME = r"E:Model.txt"
        # 初始化模型
        word2vec = WordVectorModel(MODEL_FILE_NAME)
        print("port:" + str(port))
        app.run(debug = True,host = '0.0.0.0',port = port, threaded = True)
    

      

  • 相关阅读:
    原则之读书笔记(生活篇)
    为 Nginx 添加 HTTP 基本认证(HTTP Basic Authentication)
    Linux搜索所有文件中的内容
    Js实现Table动态添加一行的小例子
    Android必学之数据适配器BaseAdapter
    技术共享之常见的6中种方法检测手机是否是虚拟机
    修改MySql数据库的默认时
    space.php
    self.location.href
    宝塔搭建laravel所需要的lnmp环境linux-nginx-mysql-php-composer-git
  • 原文地址:https://www.cnblogs.com/defineconst/p/10208801.html
Copyright © 2011-2022 走看看