Joenothing-lst / fastapi_word_cloud

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FastAPI 应用实例 - 分词词云接口

1. 项目介绍

一个通过用户上传的待分词文本分词配置文件进行文本分词,生成词云图的后端api接口。
可通过配置oss存储,将分词结果、词云图保存到oss中。

2. 使用方法

  1. 安装依赖

    pipenv shell
    ...
    pipenv install
  2. 运行项目

    配置文件 配置文件里需要配置oss存储的相关信息,以及词云图的相关参数。

    本地运行

    uvicorn main:app --reload --port 8000

    服务器运行

    uvicorn main:app --host 0.0.0.0 --port 8000
  3. 测试
    本地部署后,可通过http://localhost:8000/docs访问接口文档,使用单词云多词云用户设置的xlsx模版进行测试

3. 结果展示

3.1 分词结果

```json
{
  "code": 0,
  "msg": "success",
  "data": {
    "cut_setting": {
      "stop_words": [
        "方面"
      ],
      "similar_words": {
        "AI": "ai|人工智能|小度同?学?",
        "昆仑芯片": "昆仑"
      },
      "user_words": [
        "小度同学",
        "昆仑芯片",
        "AI",
        "百度智能云",
        "百度Apollo"
      ]
    },
    "cut_result": [
      {
        "word_data": {
          "百度": {
            "count": 25,
            "flag": "n",
            "weight": 0.6084701009874303
          },
          "AI": {
            "count": 23,
            "flag": "nz",
            "weight": 0.7680437222533519
          },
          "**": {
            "count": 11,
            "flag": "ns",
            "weight": 0.09301823338899441
          },
          "公司": {
            "count": 10,
            "flag": "n",
            "weight": 0.09786228892681563
          },
          "全球": {
            "count": 10,
            "flag": "n",
            "weight": 0.13692867189078212
          },
          "智能": {
            "count": 10,
            "flag": "n",
            "weight": 0.20000442157458104
          },
          "技术": {
            "count": 9,
            "flag": "n",
            "weight": 0.11864557152829609
          },
          "领先": {
            "count": 6,
            "flag": "n",
            "weight": 0.11845216624340782
          },
          "自动": {
            "count": 6,
            "flag": "vn",
            "weight": 0.10862509054290503
          },
          "领域": {
            "count": 6,
            "flag": "n",
            "weight": 0.09070886383927375
          },
          "互联网": {
            "count": 5,
            "flag": "n",
            "weight": 0.09946777589790504
          },
          "芯片": {
            "count": 4,
            "flag": "n",
            "weight": 0.10059036706167598
          },
          "服务": {
            "count": 4,
            "flag": "vn",
            "weight": 0.05968883348681564
          },
          "语音": {
            "count": 4,
            "flag": "n",
            "weight": 0.09445743329955307
          },
          "生态": {
            "count": 4,
            "flag": "n",
            "weight": 0.08272516940547486
          },
          "交通": {
            "count": 4,
            "flag": "n",
            "weight": 0.06642740293921788
          },
          "智慧": {
            "count": 4,
            "flag": "nr",
            "weight": 0.08259115659217876
          },
          "汽车": {
            "count": 4,
            "flag": "n",
            "weight": 0.057864941841675975
          },
          "社会": {
            "count": 4,
            "flag": "n",
            "weight": 0.05016224738067039
          },
          "强大": {
            "count": 3,
            "flag": "a",
            "weight": 0.05283762882502793
          },
          "科技": {
            "count": 3,
            "flag": "n",
            "weight": 0.04887381027997206
          },
          "用户": {
            "count": 3,
            "flag": "n",
            "weight": 0.057170414014692736
          },
          "搜索引擎": {
            "count": 3,
            "flag": "n",
            "weight": 0.08150522666547487
          },
          "深度": {
            "count": 3,
            "flag": "ns",
            "weight": 0.05830353543988827
          },
          "对话": {
            "count": 3,
            "flag": "n",
            "weight": 0.062485025658770954
          },
          "昆仑芯片": {
            "count": 3,
            "flag": "nz",
            "weight": 0.10017961594608937
          },
          "百度智能云": {
            "count": 3,
            "flag": "nz",
            "weight": 0.10017961594608937
          },
          "解决方案": {
            "count": 3,
            "flag": "n",
            "weight": 0.07179853792215084
          },
          "助手": {
            "count": 3,
            "flag": "n",
            "weight": 0.06828020960740223
          },
          "基础": {
            "count": 2,
            "flag": "n",
            "weight": 0.02661022684648045
          },
          "全栈": {
            "count": 2,
            "flag": "n",
            "weight": 0.06678641063072625
          },
          "机构": {
            "count": 2,
            "flag": "n",
            "weight": 0.02599034122452514
          },
          "美国": {
            "count": 2,
            "flag": "ns",
            "weight": 0.023221207998100558
          },
          "国家": {
            "count": 2,
            "flag": "n",
            "weight": 0.022348856939441337
          },
          "图谱": {
            "count": 2,
            "flag": "n",
            "weight": 0.054973377885083795
          },
          "能力": {
            "count": 2,
            "flag": "n",
            "weight": 0.027571749040055864
          },
          "突破": {
            "count": 2,
            "flag": "vn",
            "weight": 0.031420575123519555
          },
          "算力": {
            "count": 2,
            "flag": "n",
            "weight": 0.06678641063072625
          },
          "算法": {
            "count": 2,
            "flag": "n",
            "weight": 0.04855414245324022
          },
          "开发者": {
            "count": 2,
            "flag": "n",
            "weight": 0.06151008879385475
          },
          "企业": {
            "count": 2,
            "flag": "n",
            "weight": 0.023585319468994413
          },
          "专利申请": {
            "count": 2,
            "flag": "n",
            "weight": 0.06151008879385475
          },
          "融合": {
            "count": 2,
            "flag": "vn",
            "weight": 0.040033999955307265
          },
          "发展": {
            "count": 2,
            "flag": "vn",
            "weight": 0.019972427656089385
          },
          "布局": {
            "count": 2,
            "flag": "n",
            "weight": 0.03580153413050279
          },
          "引擎": {
            "count": 2,
            "flag": "n",
            "weight": 0.04592460917854748
          },
          "开放平台": {
            "count": 2,
            "flag": "nz",
            "weight": 0.06678641063072625
          },
          "医疗": {
            "count": 2,
            "flag": "n",
            "weight": 0.0367421624903352
          },
          "产品": {
            "count": 2,
            "flag": "n",
            "weight": 0.025457295467206705
          },
          "百度Apollo": {
            "count": 2,
            "flag": "nz",
            "weight": 0.06678641063072625
          },
          "测试": {
            "count": 2,
            "flag": "vn",
            "weight": 0.039928713594301675
          },
          "智能化": {
            "count": 2,
            "flag": "nr",
            "weight": 0.04951801703664804
          },
          "Apollo": {
            "count": 2,
            "flag": "eng",
            "weight": 0.06678641063072625
          },
          "次数": {
            "count": 2,
            "flag": "n",
            "weight": 0.042109774013631286
          },
          "责任": {
            "count": 2,
            "flag": "n",
            "weight": 0.033789042271620114
          },
          "应用程序": {
            "count": 1,
            "flag": "n",
            "weight": 0.029328157179608936
          },
          "国际": {
            "count": 1,
            "flag": "n",
            "weight": 0.012495005030754189
          },
          "复杂": {
            "count": 1,
            "flag": "a",
            "weight": 0.016311470090167597
          },
          "世界": {
            "count": 1,
            "flag": "n",
            "weight": 0.012199802808854748
          },
          "简单": {
            "count": 1,
            "flag": "a",
            "weight": 0.01569328114036313
          },
          "致力于": {
            "count": 1,
            "flag": "n",
            "weight": 0.020132273697513966
          },
          "人们": {
            "count": 1,
            "flag": "n",
            "weight": 0.013076750423379888
          },
          "顶级": {
            "count": 1,
            "flag": "n",
            "weight": 0.0239193842800838
          },
          "高科技": {
            "count": 1,
            "flag": "nz",
            "weight": 0.022664190700027936
          },
          "中关村": {
            "count": 1,
            "flag": "ns",
            "weight": 0.026485578335698326
          },
          "创始人": {
            "count": 1,
            "flag": "n",
            "weight": 0.020447034957234638
          },
          "李彦宏": {
            "count": 1,
            "flag": "nr",
            "weight": 0.034333071898044694
          },
          "专利": {
            "count": 1,
            "flag": "n",
            "weight": 0.02210677554941341
          },
          "俄罗斯": {
            "count": 1,
            "flag": "ns",
            "weight": 0.017421230148798882
          },
          "韩国": {
            "count": 1,
            "flag": "ns",
            "weight": 0.019394358327094973
          },
          "核心技术": {
            "count": 1,
            "flag": "n",
            "weight": 0.024617545577486032
          },
          "地区": {
            "count": 1,
            "flag": "n",
            "weight": 0.01245084309
          },
          "网民": {
            "count": 1,
            "flag": "n",
            "weight": 0.022804763560055865
          },
          "中文信息": {
            "count": 1,
            "flag": "nt",
            "weight": 0.038828708525139664
          },
          "入口": {
            "count": 1,
            "flag": "ns",
            "weight": 0.02274239072094972
          },
          "演化出": {
            "count": 1,
            "flag": "n",
            "weight": 0.031457040006703914
          },
          "图像": {
            "count": 1,
            "flag": "n",
            "weight": 0.021666178820810057
          },
          "投资": {
            "count": 1,
            "flag": "vn",
            "weight": 0.010866413273156425
          },
          "大脑": {
            "count": 1,
            "flag": "n",
            "weight": 0.022127910299078214
          },
          "集大成": {
            "count": 1,
            "flag": "nz",
            "weight": 0.03091470477067039
          },
          "调用": {
            "count": 1,
            "flag": "vn",
            "weight": 0.02356660851103352
          },
          "云端": {
            "count": 1,
            "flag": "n",
            "weight": 0.027255706496033517
          },
          "伙伴": {
            "count": 1,
            "flag": "n",
            "weight": 0.021386901539972067
          },
          "场景": {
            "count": 1,
            "flag": "n",
            "weight": 0.022698676274944134
          },
          "广泛": {
            "count": 1,
            "flag": "a",
            "weight": 0.015606342214134079
          },
          "部署": {
            "count": 1,
            "flag": "n",
            "weight": 0.018743021278324022
          },
          "高性能": {
            "count": 1,
            "flag": "n",
            "weight": 0.024851204877178772
          },
          "量产": {
            "count": 1,
            "flag": "n",
            "weight": 0.026419068143826815
          },
          "性能比": {
            "count": 1,
            "flag": "n",
            "weight": 0.031457040006703914
          },
          "飞桨": {
            "count": 1,
            "flag": "n",
            "weight": 0.03339320531536313
          },
          "框架": {
            "count": 1,
            "flag": "n",
            "weight": 0.020230912307569834
          },
          "时代": {
            "count": 1,
            "flag": "n",
            "weight": 0.015380810867486034
          },
          "趋势": {
            "count": 1,
            "flag": "n",
            "weight": 0.014836692629189943
          },
          "移动": {
            "count": 1,
            "flag": "vn",
            "weight": 0.018246754094022346
          },
          "新格局": {
            "count": 1,
            "flag": "nt",
            "weight": 0.027901269962430166
          },
          "积蓄": {
            "count": 1,
            "flag": "n",
            "weight": 0.023129264766089386
          },
          "势能": {
            "count": 1,
            "flag": "n",
            "weight": 0.027901269962430166
          },
          "优势": {
            "count": 1,
            "flag": "n",
            "weight": 0.015769912707318437
          },
          "云智": {
            "count": 1,
            "flag": "nr",
            "weight": 0.03339320531536313
          },
          "一体": {
            "count": 1,
            "flag": "n",
            "weight": 0.020606467446452514
          }
        },
        "word_cloud_img_url": "oss_url"
      }
    ]
  }
}
```

3.2 词云图

image text

About


Languages

Language:Python 100.0%