深圳宝安美容医院网站建设,北京舞美设计制作公司,兰州市一地发布提醒,上海百度百科Jieba分词是一个用于中文文本分词的开源工具。它可以将一段连续的中文文本切分成一个一个的词语#xff0c;这对于中文自然语言处理#xff08;NLP#xff09;任务如文本分类、情感分析、机器翻译等非常重要。Jieba分词具有以下特点#xff1a; 支持三种分词模式#xff1… Jieba分词是一个用于中文文本分词的开源工具。它可以将一段连续的中文文本切分成一个一个的词语这对于中文自然语言处理NLP任务如文本分类、情感分析、机器翻译等非常重要。Jieba分词具有以下特点 支持三种分词模式 精确模式试图将句子最精确地切开适合文本分析。全模式把句子中所有的可以成词的词语都扫描出来速度快但不能解决歧义。搜索引擎模式在精确模式的基础上对长词再次切分提高召回率适合用于搜索引擎分词。 支持自定义词典用户可以通过添加自定义词典来提高分词的准确性尤其是对一些专有名词和新词的识别。内置多种分词词典Jieba自带了多种分词词典能够识别大量常用词汇。 Jieba基础使用
安装
可以使用pip安装Jieba
pip install jieba使用示例
import jieba# 精确模式
text 我来到北京清华大学
seg_list jieba.cut(text, cut_allFalse)
print(精确模式: / .join(seg_list))# 全模式
seg_list jieba.cut(text, cut_allTrue)
print(全模式: / .join(seg_list))# 搜索引擎模式
seg_list jieba.cut_for_search(text)
print(搜索引擎模式: / .join(seg_list))输出
精确模式: 我/ 来到/ 北京/ 清华大学
全模式: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
搜索引擎模式: 我/ 来到/ 北京/ 清华/ 华大/ 大学/ 清华大学通过这种方式Jieba可以高效地将中文文本分割成词语为后续的自然语言处理任务提供基础支持。
自定义词典
Jieba分词支持自定义词典功能允许用户添加特定领域或特定应用场景的词汇以提高分词的准确性和识别率。以下是关于自定义词典功能的详细介绍
自定义词典的使用方法 创建自定义词典文件 自定义词典是一个纯文本文件每行一个词汇格式如下 词语 词频 词性词语需要添加的词汇。词频可选词频越高分词时越倾向于将此词作为一个整体分出。默认值是1。词性可选词语的词性标注。 例如 自然语言处理 3 n
机器学习 5 n
深度学习 2 n加载自定义词典 使用jieba.load_userdict方法加载自定义词典 import jiebajieba.load_userdict(user_dict.txt)添加单个词汇 除了加载整个词典文件还可以动态添加单个词汇 jieba.add_word(自定义词)
jieba.add_word(深度学习, freq20000, tagn)删除单个词汇 如果需要移除某个词汇可以使用jieba.del_word方法 jieba.del_word(不需要的词)自定义词典示例
假设有一个文本需要处理并且有一些特定领域的词汇需要添加
自定义词典文件 (user_dict.txt):
人工智能 5 n
区块链 3 n
数据挖掘 4 n加载自定义词典并进行分词
import jieba# 加载自定义词典
jieba.load_userdict(user_dict.txt)# 测试文本
text 人工智能和区块链是当今的热门技术数据挖掘也是非常重要的技能。# 分词
seg_list jieba.cut(text, cut_allFalse)
print(精确模式: / .join(seg_list))输出结果
精确模式: 人工智能/ 和/ 区块链/ 是/ 当今/ 的/ 热门/ 技术/ / 数据挖掘/ 也是/ 非常/ 重要/ 的/ 技能/ 。词性划分
要查看每个词的词性你可以使用 Jieba 的 jieba.posseg 模块它提供了词性标注的功能。jieba.posseg 模块可以分词并同时返回词性标注。
示例代码
以下是使用 jieba.posseg 模块进行分词和词性标注的示例代码
import jieba.posseg as pseg# 测试文本
text 人工智能和区块链是当今的热门技术数据挖掘也是非常重要的技能。# 分词并标注词性
words pseg.cut(text)# 输出分词结果和词性
for word, flag in words:print(f{word} ({flag}))解释
jieba.posseg.cut(text)对文本进行分词并返回一个生成器每个生成器项是一个包含词语和词性标记的元组。word表示分词结果中的词语。flag表示词语的词性标记例如n 表示名词v 表示动词等。
词性标记
常见的词性标记包括
n名词v动词a形容词d副词p介词m数词q量词
这将帮助你在分词结果中看到每个词汇的词性从而进行更深入的文本分析。
关键词提取
Jieba 提供了 jieba.analyse 模块来进行关键词提取常用于从文本中提取出重要的词汇。
示例代码
import jieba.analysetext 人工智能是计算机科学的一个重要领域近年来得到了广泛的应用。# 提取关键词
keywords jieba.analyse.extract_tags(text, topK5, withWeightFalse)print(关键词: / .join(keywords))topK返回前 K 个关键词。withWeight是否返回词语的权重默认为 False。
TF-IDF 算法
jieba.analyse 还支持 TF-IDF 算法来提取关键词。
示例代码
import jieba.analysetext 人工智能是计算机科学的一个重要领域近年来得到了广泛的应用。# 提取关键词及其权重
keywords_with_weight jieba.analyse.extract_tags(text, topK5, withWeightTrue)for word, weight in keywords_with_weight:print(f{word}: {weight})TextRank 算法
jieba.analyse 模块也支持 TextRank 算法这是一种图排序算法用于提取关键词。
示例代码
import jieba.analysetext 人工智能是计算机科学的一个重要领域近年来得到了广泛的应用。# 使用 TextRank 算法提取关键词
keywords jieba.analyse.textrank(text, topK5, withWeightFalse)print(关键词: / .join(keywords))工程技巧
位置获取
地名提取
要从文本中分出地名可以使用jieba结合词性标注来识别地名。地名通常标记为ns名词性地名。你可以使用jieba.posseg模块进行词性标注然后筛选出标记为ns的词汇。
以下是从文本中提取地名的示例代码
import jieba.posseg as pseg# 测试文本
text 我去了北京和上海最近还计划去东京和纽约旅游。# 分词并标注词性
words pseg.cut(text)# 提取地名
places [word for word, flag in words if flag ns]经纬查询
尝试通过两个不同的地图服务API腾讯地图和高德地图来获取指定地点的经纬度坐标。 requests 是一个用 Python 编写的第三方 HTTP 库它使得发送 HTTP/1.1 请求变得非常简单。使用 requests你可以很容易地发送各种 HTTP 请求如 GET、POST、PUT、DELETE 等并获取服务器响应的内容。requests 库的设计哲学是简洁易用同时又不失强大和灵活性 import requestsdef tencentMap(location): #调用腾讯api查找城市经纬度url https://apis.map.qq.com/jsapi? # 腾讯地图API接口para {qt: geoc,addr: location, # 传入地址参数output: jsonp,key: xxxxxxxxxx, # 即腾讯地图API的keypf: jsapi,ref: jsapi}req requests.get(url, para).json() # 请求数据并转为json格式geted req[detail]return float(geted[pointx]),float(geted[pointy])def aliMap(location): #调用阿里api查找城市经纬度para {key:xxxxxxxxxx, # 高德Keyaddress:location} # 地址参数url https://restapi.amap.com/v3/geocode/geo? # 高德地图地理编码API服务地址result requests.get(url,para).json() # GET方式请求lon_lat result[geocodes][0][location]lon,lat map(float, lon_lat.split(,))return lon,latdef getLonLat(location):try:return tencentMap(location)except:return aliMap(location)return None,None自定义缺省词典词性
可以通过在加载词典文件后遍历词汇并动态添加这些词汇到 Jieba 的分词库中同时指定词性。
def add_dict(self, dict_path:str,tag:str):with open(dict_path, r, encodingutf-8) as file:for line in file:word line.strip()jieba.add_word(word, tagtag)找到第一个该词性的词
从一个句子中返回第一个指定词性的词可以使用 jieba.posseg 模块进行词性标注并在遍历分词结果时找到第一个匹配的词性。
import jieba.posseg as psegdef find_first_word_of_type(text, word_type):# 分词并标注词性words pseg.cut(text)# 遍历分词结果寻找第一个指定词性的词for word, flag in words:if flag word_type:return wordreturn None