2021SC@SDUSC

在上一博客中,参数text_obj代表了我们想要提取候选词的输入文档,这些定义在input_representation.py文件中的class InputTextObj中,接下来我们就详细分析文件input_representation.py。
参数说明
pos_tagged:列表的列表,这里是sentence的列表,这里的每一个sentence都是一个元组列表(word,TAG),其中word代表单词,TAG代表词性。
stem:如果我们项在文本中使用stemming。

类InputTextObj

一、def _ init _(self, pos_tagged, lang, stem=False, min_word_len=3初始化函数:

初始化:

self.min_word_len = min_word_lenself.considered_tags = {'NN', 'NNS', 'NNP', 'NNPS', 'JJ'}self.pos_tagged = []self.filtered_pos_tagged = []self.isStemmed = stemself.lang = lang

根据stem初始化pos_tagged:

        if stem:stemmer = PorterStemmer()self.pos_tagged = [[(stemmer.stem(t[0]), t[1]) for t in sent] for sent in pos_tagged]else:self.pos_tagged = [[(t[0].lower(), t[1]) for t in sent] for sent in pos_tagged]

将符合条件的pos_tagged临时存放在temp数组中,再赋值给pos_tagged:

temp = []for sent in self.pos_tagged:s = []for elem in sent:if len(elem[0]) < min_word_len:s.append((elem[0], 'LESS'))else:s.append(elem)temp.append(s)self.pos_tagged = temp

转换一些具体的词性标签,比如NC、NE转换为NN,或者ADJA转换为JJ,具体使用了convert函数:

        if lang in ['fr', 'de']:self.pos_tagged = [[(tagged_token[0], convert(tagged_token[1])) for tagged_token in sentence] for sentenceinself.pos_tagged]self.filtered_pos_tagged = [[(t[0].lower(), t[1]) for t in sent if self.is_candidate(t)] for sent inself.pos_tagged]

二、def is_candidate(self, tagged_token)函数
输入:元组(word,TAG)。
输出:一个有效的候选词。

    def is_candidate(self, tagged_token):return tagged_token[1] in self.considered_tags

三、def extract_candidates(self)函数:
返回所有的候选词:

def extract_candidates(self):return {tagged_token[0].lower()for sentence in self.pos_taggedfor tagged_token in sentenceif self.is_candidate(tagged_token) and len(tagged_token[0]) >= self.min_word_len}

四、def convert(fr_or_de_tag)函数:
如果tag为’NN’、‘NNE’、‘NE’、‘N’、‘NPP’、‘NC’、‘NOUN’的其中一种,则转换为’NN’;
如果tag为’ADJA’、‘ADJ’的其中一种,则转换为’JJ’;
否则将原参数返回。

def convert(fr_or_de_tag):if fr_or_de_tag in {'NN', 'NNE', 'NE', 'N', 'NPP', 'NC', 'NOUN'}:return 'NN'elif fr_or_de_tag in {'ADJA', 'ADJ'}:return 'JJ'else:return fr_or_de_tag

blog10 提取候选词的输入文本相关推荐

  1. 解决新安装的 Arch Linux 在 GNOME 中搜狗输入法不显示候选词和输入延迟的问题

    问题描述 新安装的 Arch Linux 系统,在 AUR 中安装 fcitx-sogoupinyin 后,fcitx 的图标不显示,且切换到搜狗输入法后不显示候选词,输入的延迟也极高,切换回英文输入 ...

  2. ubuntu20.04使用chrome、搜狗输入法删除候选词内容时文本框的内容也会被删除

    1.设备信息 OS: Ubuntu 20.04.2 LTS x86_64 Kernel: 5.8.0-63-generic Shell: zsh 5.8 DE: GNOME CPU: Intel i5 ...

  3. Linux——Ubuntu安装Fcitx以及Fcitx输入中文不显示候选词框的解决办法

    一.安装Fcitx 1.安装Fcitx所需组件 $ sudo apt install fcitx fcitx-tools fcitx-config* fcitx-frontend* fcitx-mod ...

  4. 搜狗输入法在idea打不了汉字_搜狗输入法在idea打不了汉字_好烦啊,IDEA输入中文时输入法候选词框不跟随光标......

    PS:虽然写这篇文章会让人感觉很无聊,但是既然费心思去做了,写下来也不为过O(∩_∩)O~ 起因: 前几日在下从Eclipse搬迁到了IDEA,但是输入中文代码注释时,发现输入法的候选词框一直在右下角 ...

  5. 搜狗输入法在idea打不了汉字_好烦啊,IDEA输入中文时输入法候选词框不跟随光标...

    PS:虽然写这篇文章会让人感觉很无聊,但是既然费心思去做了,写下来也不为过O(∩_∩)O~ 起因: 前几日在下从Eclipse搬迁到了IDEA,但是输入中文代码注释时,发现输入法的候选词框一直在右下角 ...

  6. python提取高频词_cygwin下用Python+jieba给文本分词并提取高频词

    本文信息本文由方法SEO顾问发表于2015-05-3023:05:55,共 2000 字,转载请注明:cygwin下用Python+jieba给文本分词并提取高频词_[方法SEO顾问],如果我网站的文 ...

  7. 好烦啊,IDEA输入中文时输入法候选词框不跟随光标

    PS:虽然写这篇文章会让人感觉很无聊,但是既然费心思去做了,写下来也不为过O(∩_∩)O~ 起因: 前几日在下从Eclipse搬迁到了IDEA,但是输入中文代码注释时,发现输入法的候选词框一直在右下角 ...

  8. 使用jsonp跨域调用百度js实现搜索框智能提示,并实现鼠标和键盘对弹出框里候选词的操作【附源码和在线测试地址】

    项目中常常用到搜索,特别是导航类的网站.自己做关键字搜索不太现实,直接调用百度的是最好的选择. 使用jquery.ajax的jsonp方法可以异域调用到百度的js并拿到返回值,当然$.getScrip ...

  9. BERT实战(1):使用DistilBERT作为词嵌入进行文本情感分类,与其它词向量(FastText,Word2vec,Glove)进行对比

    这次根据一篇教程Jay Alammar: A Visual Guide to Using BERT for the First Time学习下如何在Pytorch框架下使用BERT. 主要参考了中文翻 ...

最新文章

  1. PSM-省电模式(PowerSaving Mode)
  2. PHP array_intersect_uassoc
  3. inet_pton函数和inet_ntop函数的用法及简单实现
  4. 华为手机应用鸿蒙os,华为手机内置应用逐渐向鸿蒙 OS 靠拢
  5. 百万年薪大佬熬夜写作,Python高级编程之反爬虫及应对方案
  6. mybatis mysql schema_学习Mybatis与mysql数据库的示例笔记
  7. html,htm,jhtml
  8. 读书笔记∣疯狂XML讲义
  9. 最新出炉程序猿使用说明书
  10. java8中的接口与时间操作
  11. GitChat · 前端 | JavaScript 进阶之 Vue.js + Node.js 入门实战开发
  12. 20154312 曾林 Exp5_MSF基础应用
  13. 关于IBM的X3200M3型IMM和UEFI的问题解决方案汇总
  14. 指向函数的指针 ------ 函数指针(function pointer)
  15. PotPlayer老是提醒更新,怎么禁止PotPlayer联网?
  16. 命令行方式运行PHP脚本
  17. C/C++ 实现一个简单的文本编辑器(windows程序设计)
  18. 彩色激光同轴位移计在智能手机和平板电脑的应用
  19. 【安全资讯】网络安全拐点已至 行业如何破局?
  20. 加班熬夜整理出来的100道Python基础题,学到就是赚到!超级详细

热门文章

  1. Android自定义控件开发入门与实战(7)SVG动画,android底层架构
  2. xp系统打开itunes显示服务器失败,XP系统无法安装最新的iTunes怎么解决,图文教程...
  3. 【自动驾驶摸爬滚打路】自动驾驶仿真软件SCANeR 001初相识
  4. 自学Java!三面蚂蚁核心金融部,Java岗
  5. 海克斯康三坐标模块化c语言编程,海克斯康三坐标编程手册_海克斯康三坐标教程...
  6. STM32F407传输OV2640视频数据并在PC端显示
  7. java-php-python-晨光文具店进销存系统设计与开发计算机毕业设计
  8. 《流浪地球》影评数据爬取分析
  9. Ubuntu 搜狗输入法 中文 无法切换 英文
  10. UGUI源码分析:开关组件Toggle与ToggleGroup