Skip to content

Nobody Likes Problem. Therefore, we use NLP to solve them.

Notifications You must be signed in to change notification settings

wongself/nobody-likes-problem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nobody-likes-problem

很抱歉,本项目里的文件夹nobody-likes-problem/nlp/applicaitons中的applicaitons拼写错误,请将错就错。 ฅ(ミ・ﻌ・ミ)ฅ

安装部署

展示网址

模块测试

环境依赖

网站架构

  • python 3.7+ (test with version 3.7.8)
  • django 3.1+ (test with version 3.1.3)
  • flask (tested with version 1.1.2)
  • gunicorn (test with version 20.0.4)
  • waitress (test with version 1.4.4)
  • whitenoise (test with version 5.2.0)

信息抽取模块

  • nltk (tested with version 3.5)
  • numpy (tested with version 1.19.2)
  • scikit-learn (tested with version 0.23.2)
  • torch 1.1.0+ (tested with version 1.6.0)
  • tqdm (tested with version 4.50.2)
  • transformers 2.2.0+ (tested with version 3.4.0)

对话模块

  • torch(tested with version 1.3.1)
  • tensorboardX(tested with version 1.9)
  • pytorch-pretrained-bert(tested with version 0.6.1)
  • tqdm (tested with version 4.36.1)

中文新闻分类模块

  • numpy (tested with version 1.19.2)
  • torch (tested with version 1.6.0)
  • tqdm (tested with version 4.50.2)
  • pytorch_pretrained_bert (tested with version 0.6.2)

机器翻译模块

  • nltk (tested with version 3.5)
  • torch (tested with version 1.6.0)
  • dill (tested with version 0.3.3)

阅读理解模块

  • torch (tested with version 1.6.0)
  • absl (tested with version 0.11.0)
  • spacy (tested with version 2.3.5)
  • tqdm (tested with version 4.50.2)

情感分析模块

  • paddlepaddle (tested with version 1.8.5)
  • Senta (tested with version 2.0.0)

环境安装

  1. 位于用户根目录,输入命令git clone git@github.com:wongself/nobody-likes-problem.git来下载该仓库。
  2. 进入项目nobody-likes-problem的目录,输入命令pip install -r requirements.txt来下载环境依赖,推荐在 Anaconda 创建的虚拟环境中安装所需依赖。
  3. 位于项目根目录,先后输入命令python manage.py makemigrationspython manage.py migrate来测试 Django 架构是否安装成功。

👇信息抽取模块extract

  1. 位于项目根目录,输入命令cp -r /data/wsf/nobody-likes-problem/data ./来导入信息抽取模块运行所需的预训练模型、外部数据等必要资料。若需手动构建,请参考 README 文件。

👇对话模块dialog

  1. 项目需要分别导入数据集、模型、预训练模型、词向量进入 ./nlp/applicaitons/dialog/CMAML/data./nlp/applicaitons/dialog/CMAML/save/cmaml./nlp/ applicaitons/dialog/CMAML/tmp./nlp/applicaitons/dialog/CMAML/vectors文件夹中,具体导入方法请参考 README 文件。

👇中文新闻分类模块text_classification_ch

  1. 位于服务根目录,输入命令cp -r /data/zj/LanguageInformationProcessing/git-try/nobody-likes-problem/nlp/applicaitons/text_classification_ch/THUCNews ./来导入中文新闻分类模块运行所需的预训练模型、外部数据等必要资料。若需手动构建,请参考 README 文件。

👇机器翻译模块translation

  1. 从网盘中下载机器翻译模型,存入相对于项目根目录的nlp/applicaitons/translation/save目录下。更多信息请参考机器翻译模块的README
链接:https://pan.baidu.com/s/14iBXZ0CG46QvEbWoMXk2Ww 
提取码:41gy 
复制这段内容后打开百度网盘手机App,操作更方便哦

👇阅读理解模块mrc

  1. 位于服务根目录,输入命令cp -r /data/zhq/nobody-likes-problem/nlp/applicaitons/mrc/data ./来导入阅读理解模块运行所需的预训练模型、外部数据等必要资料。若需手动构建,请参考 README 文件。

👇情感分析模块sana

  1. 位于项目根目录,首次运行python ./nlp/applicaitons/sana/server.py即可安装情感分析模块运行所需的预训练模型、外部数据等必要资料,但需要等待较长一段时间直到senta文件夹下生成model_files目录。

项目开发

项目调试

  1. 位于项目根目录,先后输入命令python manage.py makemigrationspython manage.py migrate来生成 Django 架构运行所需的必要文件。
  2. 位于项目根目录,输入命令python manage.py collectstatic --no-input来更新网站所需的静态文件(CSS、JS、HTML、IMG...)。仅当第一次启动项目或者位于nobody-likes-problem/nlp/static的静态文件被修改时才需要执行这项操作。
  3. 位于项目根目录,输入命令python manage.py runserver 0:2444来启动网站,随后在浏览器中输入本机网址及端口2444。其中,0代表0.0.0.0,而2444代表网站的默认端口,你可以将端口改为1024~65535中的任意一个数值。但需要注意的是,不要设置重复的端口号。

👇信息抽取模块extract

  1. 位于项目根目录,输入命令python ./nlp/applicaitons/spert/server.py来启动信息抽取模块,随后在浏览器中输入本机网址及端口2334,来测试模块是否启动成功。若页面出现出现Nobody Likes Problem,则表明模块启动成功。 信息抽取模块已经在端口2334启动成功。

👇对话模块dialog

  1. 位于项目根目录,输入命令python ./nlp/applicaitons/dialog/server.py来启动对话系统模块,随后在浏览器中输入本机网址及端口2335,来测试模块是否启动成功。若页面出现出现Nobody Likes Problem,则表明模块启动成功。 对话模块已经在端口2335启动成功。

👇中文新闻分类模块text_classification_ch

  1. 位于服务根目录,输入命令python ./server.py来启动中文新闻分类模块,随后在浏览器中输入本机网址及端口2336,来测试模块是否启动成功。若页面出现出现Nobody Likes Problem,则表明模块启动成功。 中文新闻分类模块已经在端口2336启动成功。

👇机器翻译模块translation

  1. 位于服务根目录,输入命令python ./server.py来启动机器翻译模块,随后在浏览器中输入本机网址及端口2337,来测试模块是否启动成功。若页面出现出现Nobody Likes Problem,则表明模块启动成功。 机器翻译模块已经在端口2337启动成功。

👇阅读理解模块mrc

  1. 位于项目根目录,输入命令python ./nlp/applicaitons/mrc/server.py来启动阅读理解模块,随后在浏览器中输入本机网址及端口2338,来测试模块是否启动成功。若页面出现出现Nobody Likes Problem,则表明模块启动成功。 阅读理解模块已经在端口2338启动成功。

👇情感分析模块sana

  1. 位于项目根目录,输入命令python ./nlp/applicaitons/sana/server.py来启动情感分析模块,随后在浏览器中输入本机网址及端口2339,来测试模块是否启动成功。若页面出现出现Nobody Likes Problem,则表明模块启动成功。 情感分析模块已经在端口2339启动成功。

项目维护

  1. 位于项目根目录,先后输入命令python manage.py makemigrationspython manage.py migratepython manage.py collectstatic --no-input来生成网站运行所需的必要文件。
  2. 位于项目根目录,输入命令gunicorn nlp_in_your_area.wsgi -w 4 -k gthread -b 0.0.0.0:2444来启动网站。 输入命令python manage.py runserver 0:2444来启动项目。
  3. 若有附加功能需要添加,可以将 Python 代码放置于nobody-likes-problem/nlp/applicaitons中,在nobody-likes-problem/nlp/urls.pynobody-likes-problem/nlp/views.py设置相应的链接跳转和消息处理,并在nobody-likes-problem/nlp/templatesnobody-likes-problem/nlp/static/nlp中修改相应的前端代码和 AJAX 相应代码。

👇信息抽取模块extract

  1. 位于项目根目录,输入命令python ./nlp/applicaitons/spert/server.py来启动信息抽取模块。 信息抽取模块已经在端口2334启动成功。

👇对话模块dialog

  1. 位于项目根目录,输入命令python ./nlp/applicaitons/dialog/server.py来启动对话系统模块。 对话系统模块已经在端口2335启动成功。

👇中文新闻分类模块text_classification_ch

  1. 位于服务根目录,输入命令python ./server.py来启动中文新闻分类模块。 中文新闻分类模块已经在端口2336启动成功。

👇机器翻译模块translation

  1. 位于服务根目录,输入命令python ./server.py来启动机器翻译模块。 机器翻译模块已经在端口2337启动成功。

👇阅读理解模块mrc

  1. 位于项目根目录,输入命令python ./nlp/applicaitons/mrc/server.py来启动阅读理解模块。 阅读理解模块已经在端口2338启动成功。

👇情感分析模块sana

  1. 位于项目根目录,输入命令python ./nlp/applicaitons/sana/server.py来启动情感分析模块。 情感分析模块已经在端口2339启动成功。

如何构建你的服务

为了调试过程顺利,请仔细阅读下方文字,不要遗漏部分关键字。

  1. 为了创建类似于信息抽取模块(已占用端口号2334)的服务,以便于 Django 框架中的视图层向创建的服务发送请求并接收响应,你可以参考nobody-likes-problem/nlp/applicaitons/server_template中的文件格式,自行在nobody-likes-problem/nlp/applicaitons中创建一个新的文件夹(例如nobody-likes-problem/nlp/applicaitons/dialog),并参考/server_template中的server.pyconfigure.py__init__.py文件复制到/dialog中。
  2. 接着,参考nobody-likes-problem/nlp/applicaitons/dialog/server.py分词完之后字段所在行的注释,编写自己的服务内核。
  3. 在服务根目录,输入命令python ./server.py来启动你刚刚创建的模块。随后,在浏览器中输入本机网址及对应端口,来测试模块是否启动成功。若页面出现出现Nobody Likes Problem,则表明模块启动成功。

如何展示你的服务

为了调试过程顺利,请仔细阅读下方文字,不要遗漏部分关键字。

  1. 为了在页面成功展示模块的输出结果,需要自行创建对应页面并设置路径,详见下方说明。
  2. 首先,在nobody-likes-problem/nlp/templates/template.html中展示了一个页面模板,你也可以在2444端口直接点击导航栏中的模板一项查看模板的展示效果。现在,为了创建模块对应的页面,需要在对应文件夹内拷贝一份template.html并重命名为模块对应的名称(推荐使用模块功能对应的核心单词,如dialog.html,后续均用dialog代表模块名称)。随后,在dialog.html中将所有template有关的名称重命名为dialog,如trigger_template->trigger_dialogtemplate.js->dialog.js等。
  3. 接着,参考nobody-likes-problem/nlp/templates/base.htmlnav_template字段所在行的注释,创建一个导航<li>块。需要注意的是,仅新创建的代码块中的template字段需要重命名为dialog
  4. 然后,复制模块页面脚本,即拷贝一份nobody-likes-problem/nlp/static/nlp/js/custom/template.js到对应文件夹并重命名为dialog.js,并确保在dialog.html中倒数第5行{% static 'nlp/js/custom/template.js' %}中的template.js引用已被重命名。随后,将dialog.js所有template有关的名称重命名为dialog,如trigger_template->trigger_dialogpre_template_result->pre_dialog_result等。
  5. 接着,参考nobody-likes-problem/nlp/static/nlp/js/custom/style.js复制该段字段所在行的注释,创建一个case块。需要注意的是,仅新创建的代码块中的template字段中的template字段均需要重命名为dialog
  6. 然后,复制模块页面样式,即拷贝一份nobody-likes-problem/nlp/static/nlp/css/custom/template.css到对应文件夹并重命名为dialog.css,并确保在dialog.html中第14行{% static 'nlp/css/custom/template.css' %}中的template.css引用已被重命名。
  7. 页面相关文件创建成功后,参考nobody-likes-problem/nlp/urls.py中的注释,创建一行页面重定向语句和一行查询重定向语句。然后,参考nobody-likes-problem/nlp/views.py中的注释,创建一段页面调用函数和一段查询调用函数。需要注意的是,仅新创建的代码块中的template字段均需要重命名为dialog

若脚本、样式修改没有效果,请确保文件引用正确,且网站运行在调试模式下。

About

Nobody Likes Problem. Therefore, we use NLP to solve them.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published