①任务描述:
英文分词工具基本上都是以空格作为分词依据,但是我的任务识别关联词,有些关联词是词组的形式,过度分词,反而不好进行比对。
方案:
利用NLTK用户自定义词典

import nltk
# 有安装包的话,可以注释掉该句话
nltk.download('tokenizers/punkt/english.pickle')
from nltk.tokenize import MWETokenizer
test="as for Lippi in China, it will be make or break against Syria on Tuesday in Nanjing."
nltk.word_tokenize(test)
tokenizer = MWETokenizer([('in','China'), ('a', 'little', 'bit'), ('as', 'for')], separator = ' ')
tokenizer.add_mwe(('in', 'spite', 'of'))
word=tokenizer.tokenize(nltk.word_tokenize(test))
print(word)

结果:
[‘as for’, ‘Lippi’, ‘in China’, ‘,’, ‘it’, ‘will’, ‘be’, ‘make’, ‘or’, ‘break’, ‘against’, ‘Syria’, ‘on’, ‘Tuesday’, ‘in’, ‘Nanjing’, ‘.’]

②任务描述:
有些缩写,例如Mr. i.e.包含标点符号“.” 普通的分句策略,会将缩写当成新句子切开
方案:
向nltk中添加缩写标识

from nltk.tokenize.punkt import PunktSentenceTokenizer, PunktParametersdef cut_sentences_en(content):punkt_param = PunktParameters()abbreviation = ['i.e.', 'for example', 'vs', 'mr', 'mrs', 'prof', 'inc']  # 自定义的词典punkt_param.abbrev_types = set(abbreviation)tokenizer = PunktSentenceTokenizer(punkt_param)sentences = tokenizer.tokenize(content)return sentencessentence="I love fruits,i.e.apple,banana."
print(cut_sentences_en(sentence))

结果:
[‘I love fruits,i.e.apple,banana.’]

③正则替换

#将非英文、数字替换为空字符
import re
pattern=re.compile("[^a-z^A-Z^0-9]")
word=pattern.sub("",word)

NLTK加载自定义词典相关推荐

  1. Ansj动态加载自定义词典

    Ansj动态加载自定义词典 直奔主题 直奔主题 之前看的官网,加载userLibrary.dic,使用配置文件的方式,不过试了好多次没成功,后来看到有动态加载的方式,于是尝试使用动态加载字典. tal ...

  2. ansj添加自定义词典以及解决ansj加载自定义词典不起作用问题

    pom文件中添加 <!-- Ansj中文分词--><dependency><groupId>org.ansj</groupId><artifact ...

  3. Linux系统 安装飞桨PaddleHub+LAC实现词法分析 实现加载自定义词典分词 (解决Lac服务启动报错问题、解决自定义词典空格无法分词问题)

    1.先上链接:飞桨PaddlePaddle-源于产业实践的开源深度学习平台 2.LAC模型简介:Lexical Analysis of Chinese,简称 LAC,是一个联合的词法分析模型,能整体性 ...

  4. php定义一个名为Vehicles,[PHP][Yii2.0] 以Yii 2.0风格加载自定义类或命名空间 [配置使用Yii2 autoloader]...

    Yii 2.0最显著的特征之一就是引入了命名空间,因此对于自定义类的引入方式也同之前有所不同.这篇文章讨论一下如何利用Yii 2.0的自动加载机制,向系统中引入自定义类和命名空间.本文旨在抛砖引玉,如 ...

  5. Visual C++——加载自定义光标

    基本概念 自定义光标:自定义光标保存在扩展名为.cur的文件中 光标名 CURSOR 光标文件(.cur) 采用自定义光标时,需在资源文件中定义光标资源. API LoadCursor:第一个参数是要 ...

  6. Android开发之WebView加载自定义scheme报错net::ERR_UNKNOWN_URL_SCHEME(附带源码标题下面可点击下载)

    咱们先看下报错结果图: 我这边是华为荣耀7i手机才出现这个情况,总结得出结论android6.0以上加载自定义scheme会报错如下,6.0以下貌似不会 三星和模拟器没有可以直接加载这个url ,网页 ...

  7. win10支持linux内核,Win10将允许您加载自定义Linux内核

    微软正在为Win10添加一个Linux内核,以支持Linux的Windows子系统.但是,猜测一下:你不必使用微软的Linux内核.您可以构建自己的自定义Linux内核供Windows使用. 此功能是 ...

  8. Spring Boot基础学习笔记04:Spring Boot加载自定义配置文件

    文章目录 零.学习目标 1.熟悉使用@PropertySource加载配置文件 2.熟悉使用@ImportResource加载XML配置文件 3.掌握使用@Configuration编写自定义配置类 ...

  9. 【janino】janino 加载自定义函数

    1.背景 想使用janino 加载自定义函数.我是这么做的,开始的做法 [janino]janino自定义函数报错A method named "xx" is not declar ...

  10. BundleLoader:帮你无缝加载自定义Bundle里的资源文件

    引子 iOS开发中,我们封装SDK给第三方使用通常采用.a或.framework + .bundle的形式.相信封装过这种带bundle资源文件的SDK的同学们一定都会遇到这样一个小麻烦.那就是加载自 ...

最新文章

  1. linux shell 字符串操作(长度,查找,替换)详解 BASH
  2. 【论文解读】ICDM2020 | 挖掘异构图中的层级结构
  3. BUAA_OO_Unit1总结
  4. Hive和HBase的区别
  5. 获取mssqlserver数据库表的字段名称,字段说明,数据类型,主键等表的信息
  6. OpenFileDialog获取文件名和文件路径问题
  7. MWeb 博客生成软件如何使用“发布脚本”发布网站?
  8. 智力游戏教案c语言代码,幼儿园智力游戏教案分析
  9. Python os.symlink创建软链接
  10. 头条视频消重软件 免费批量修改视频md5
  11. Git runner安装
  12. mysql查询结果乘2倍_SQL查询总和乘以它应该的2倍
  13. attention方式的算法
  14. 视觉工程师面试50问
  15. 贝恩2021技术报告:到2025年,30%的云服务供应商将专注于人工智能计算工作负载
  16. 读书笔记——我的学习与研究经历(杨振宁/2012)
  17. 微信开发网页授权的两种方式
  18. uniapp 电商app签到功能实现
  19. 一个产品经理的自我认识
  20. CodeVS3498 小木棍

热门文章

  1. 虚拟服务器开启打印端口号,打印机服务器虚拟端口设置方法
  2. autoucad2014激活就未响应_CAD2014激活错误怎么办,autocad2014激活错误的解决办法
  3. ar ebs 销售订单关闭_雅视推AR眼镜虚拟试戴,眼镜行业科技转型强信号
  4. php网站设计思路,PHP开发之网页留言板的思路及设计
  5. vs2010的Visual Assist X破解版安装
  6. AIM 2020 Challenge on Learned Image Signal Processing Pipeline(个人笔记,勿喷)
  7. 摄影测量(一):概述
  8. 【实战】替代Flash的,基于JQuery、HTML5文件上传插件
  9. java开发面试自我介绍模板_java面试自我介绍范文
  10. 深海迷航代码_《深海迷航(Subnautica)》入坑指南