(3)读取词库

scel转txt抽取词库 最近需要词库来优化分词效果,找到了有大神写好的能将搜狗词库scel转成txt的python脚本。 http://blog.youkuaiyun.com/zhangzhenhu/article/details/7014271 实际运行时因为python版本不同转换不能成功,最后终于可行。bytes与16进制字符串f = open(file_name, 'rb') data = f.read() f.close 阅读详情

这个类的主要作用是解析出单词和对应的翻译,划分单词分类的不包含在这个类里


<?php
class Oxford
{
	private $OfileName=null;
	private $ODicString='';
	private $ODicUnit=array();
	private $ODicWord=array();
	private $ODicTrans=array();
	private $ODicEncoding=null;
	
	public function __construct($fname)
	{
		$encode=mb_detect_encoding($fname, array('GB2312','GBK','UTF-8','BIG5','LATIN1'));
		$this->OfileName=mb_convert_encoding(trim($fname), 'GB2312', $encode);

		$temp=file_get_contents($this->OfileName, false, null, 0, 64);
		$this->ODicEncoding=mb_detect_encoding($temp, array('GB2312','GBK','UTF-8','BIG5','LATIN1'));
		
	}
	
	//读取文件并保存到$OfileName中
	protected function readDicFromFile()
	{
		if(!file_exists($this->OfileName))
		{
			die('文件不存在'.__LINE__);
		}
		if(!is_readable($this->OfileName))
		{
			die('文件不可读'.__LINE__);
		}
		$fp=fopen($this->OfileName, 'r') or die('打开文件失败'.__LINE__);
		
		while(!feof($fp))
		{
			$this->ODicString .= fread($fp, 10240);
		}
		fclose($fp);
		if(strtoupper($this->ODicEncoding)!='UTF-8')
		{
			$this->ODicString=mb_convert_encoding($this->ODicString, 'UTF-8', $this->ODicEncoding);
		}
		
	}
	//根据音标进行分割并保存到ODicUnit单元中,保存为数组
	protected  function splitWithVoice($pattern='#(?<=\r\n)/[^/]+?/(?=\s)#ui')
	{
		$this->ODicUnit=preg_split($pattern, $this->ODicString);
	}
	//从第二个到倒数第二个单元里面,保存的都是上一个单词的翻译,和下一个单词
	//根据音标分割成单元后,第一个单元里保存的是第一个单词,最后一个单元里则保存的是最后一个翻译
	//并且单词是结尾,单词和上一个单词的翻译之间肯定是存在回车换行符的,根据这个特征,提取出单词
	//所以依次从第二个单元到倒数第二个单元里,根据特征提取出单词。
	protected  function grepWord()
	{
		//提取首单词
		$this->ODicWord[]=trim(strtolower($this->ODicUnit[0]));
		
		$pat='#\r\n(.*)(?:\r\n)$#i'; //提取单词
		$len=count($this->ODicUnit);
		
		for($i=1; $i<$len-1; $i++)
		{
			if(preg_match($pat, $this->ODicUnit[$i], $match))
			{
				$this->ODicWord[]=trim(strtolower($match[1]));
			}
			else
			{
				die('匹配单词失败'.__LINE__."<br />");
			}
		}
	}
	
	//从第二个到倒数第二个单元里面,保存的都是上一个单词的翻译,和下一个单词
	//根据音标分割成单元后,第一个单元里保存的是第一个单词,最后一个单元里则保存的是最后一个翻译
	//在每个单元中反向搜索单词第一次出现的位置,根据这个位置可以提取出上一个单词的翻译
	protected  function grepTrans()
	{
		$len=count($this->ODicUnit);
		for($i=1; $i<$len-1; $i++)
		{
			if($pos=strripos($this->ODicUnit[$i], $this->ODicWord[$i]))
			{
				array_push($this->ODicTrans,substr($this->ODicUnit[$i], 0, $pos));
			}
			else
			{
				die("此方法不可行".__LINE__."<br />");
			}
			
		}
		array_push($this->ODicTrans,$this->ODicUnit[$len-1]);
	}

	public function oxf()
	{
		$this->readDicFromFile();
		$this->splitWithVoice();
		$this->grepWord();
		$this->grepTrans();
		
		
		$len=count($this->ODicWord);
		$oxfWord=array();
		for($i=0; $i<$len; $i++)
		{
			$oxfWord[$this->ODicWord[$i]] = $this->ODicTrans[$i];
			//echo $this->ODicWord[$i]."<br />";
		}
		return $oxfWord;
		//return $this->ODicUnit;
		
	}

}//class Oxford

/* $oxf=new Oxford(' E:/CodeEdit/php/ciba/TXT格式的牛津电子词典/牛津电子词典/A/A-c.txt ');
$res=$oxf->oxf();
echo count($res)."<br /><br />";
 echo "<pre>";
print_r($res); */


Linux下ibus输入法词库扩展实战:从搜狗词库到本地化配置全流程 本文详细介绍了在Linux系统下为ibus输入法扩展词库的完整实战流程。通过Python脚本将搜狗细胞词库转换为ibus兼容格式,并完成本地化部署与配置,有效解决了默认词库专业词汇不足的问题,显著提升中文输入体验。 阅读详情

相关推荐

华为OD机试2024年E卷-中文分词模拟器[200分]( Java | Python3 | C++ | C语言 | JsNode | Go )实现100%通过率

给定一个连续不包含空格的字符串,该字符串仅包含英文小写字母及英文标点符号(逗号、分号、句号),同时给定词库,对该字符串进行精确分词。 说明: 精确分词:字符串分词后,不会出现重叠。即"ilovechina",不同词库可分割为"i,love,china","ilove,china",不能分割出现重叠的"i,ilove,china",i 出现重叠 标点符号不成词,仅用于断句 词库:根据外部知识库统计出来的常用词汇例:dictionary = ["i", "love", "china", "lovechi

算法算法算法!!! 475

关于意图识别的一些整理理解(二)

意图识别环境搭建 flask框架使用 首先需要搭建一个简单的flask框架,使用flask框架的原因是由于项目需要开放一些api接口供外部调用,意图识别由于只是项目的一部分,所以在多人做不同模块的情况下,使用api接口调用方式非常合理,只需规定输出格式,就可以多个模块之间相互调用,可以理解为最简单的spring cloud。 以下为目录结构: --app --main --__init__....

qq_42746595的博客 1553

深蓝词库转换工具:专业输入法词库管理

绿色软件是指对计算机系统资源占用小、对环境影响小、无恶意功能的软件。它不仅仅关注环境保护,还包括资源优化利用、用户隐私保护和软件可持续性等多个方面。绿色软件的意义在于,它可以帮助用户提高工作效率,减少计算机负荷,节省能源,同时保护用户隐私和数据安全。绿色软件的设计原则包括最小化资源消耗、减少能耗、避免干扰系统正常运行、保护用户隐私和数据安全。这些原则要求开发者在软件设计时,就需要充分考虑软件的性能、效率以及对用户的影响。兼容性是衡量软件能够在不同操作系统和硬件环境下正常运行的能力。

weixin_42502089的博客 1505

提取词库程序

提取词库的程序中间停了好长时间,前几天改了一下,暂时算是写完了。实现了基本功能,去掉数字,去掉停用词,去掉标点符号。 印象比较深刻的几点是,程序的逻辑从模糊到清楚,从混乱复杂到比较简单。去掉了冗余的比较和无意义的区分。总体的逻辑没有变。按空格读取文本信息存入vector容器中。对每一个字符串,先检查是否含有字母,不含则直接移到下一个字符串。然后分为字符串头去符号检查,字符串中去符号检查,字符串尾

Zephyr 976

深蓝词库转换器:跨平台词库管理与优化工具

随着信息技术的不断进步,词库转换工具成为了IT领域中的一个重要辅助工具。本章节首先对词库转换工具进行概述,让读者了解其背景与基本功能,为后续章节中的深入探讨打下基础。词库转换工具是专门设计用来实现不同格式词库数据转换的软件,它能够将一种格式的词库文件转换成另一种或多种格式,以适应不同软件或系统的需求。例如,在自然语言处理、机器翻译、智能输入法开发和搜索引擎优化等应用中,对词库数据格式的需求各不相同,词库转换工具恰好可以提供一种快速且灵活的解决方案。

weixin_35815766的博客 1086

词典工具sdcv词库

sdcv词库包括 现代汉语词典 朗道汉英字典5.0 牛津英汉双解美化版 朗道英汉字典5.0

(2)读取词库

这个类的主要作用,迭代的读取文件,因为路径存在中文,所以必须转码, 同时转码后,由于windows下的路径分隔符,会对编码后的路径进行转义,所以必须先对路径名进行转换 <?php class Dir { private $fileList=array(); public function __construct($path) { $this->readFileList($

Free_Program_1314的专栏 898

三菱PLC通信库大比拼:手把手教你用C#实现最高效的McProtocol数据读写

本文深入比较了三菱PLC通信库的性能,重点介绍了如何使用C#高效实现McProtocol数据读写。通过实测数据对比HslCommunication、McProtocol-next和自定义方案的优劣,提供优化技巧和代码示例,帮助开发者在工业自动化场景中提升通信效率。

m0n1o2p的博客 255

java scel_百度词典BDICT文件和搜歌词库SCEL文件如何读取?(python/JAVA)

满意答案qnar652017.11.29采纳率:52%等级:9已帮助:1315人1.性能Py3.0运行pystonebenchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。Py3.1性能比Py2.5慢15%,还有很大的提升空间。2.编码Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:>&g...

weixin_28949937的博客 485

ComfyUI+minimaxh3本地部署:漫剧分镜批量生成工作流全实操

视频生成模型正从云端API向本地化部署迁移,背后的技术逻辑是将扩散模型的文本编码、潜空间采样、VAE解码等阶段拆分为可编排的独立环节。ComfyUI作为节点化管线工具,恰好能以可视化连线方式管理这些阶段,让生成过程可控、可复用、可批量执行。minimaxh3模型支持本地推理,配合LoRA微调与参数优化,能够在保证角色一致性的前提下,从分镜脚本批量产出连续剧情片段,规避云端排队、成本高、素材不可控等工程问题。这套工作流广泛应用于漫剧、短剧和动态条漫的工业化生产,尤其适合需要高频迭代分镜草稿的内容团队。文本以零

weixin_29057065的博客 365

父子Agent架构:解决AI系统上下文污染的技术方案

在AI系统设计中,上下文管理是核心挑战之一。传统单Agent架构在处理复杂任务时,常面临上下文无限膨胀导致的信息淹没和性能下降问题。父子Agent架构通过职责分离和上下文隔离机制,采用分而治之的思想,将大任务拆解为多个子任务由专门子Agent处理。该架构中父Agent负责任务规划和结果汇总,子Agent执行具体任务后立即销毁中间状态,通过精炼摘要进行通信。这种设计不仅能有效控制上下文长度,还能提升系统稳定性和执行效率,特别适用于编程辅助、自动化测试等需要多步骤处理的场景。父子Agent架构体现了计算机科学中

weixin_42531710的博客 353

jieba源碼研讀筆記(二) - Python2/3相容

jieba的主程序是__init__.py,定義了cut, cut_for_search等用於分詞的函數。 在正式介紹分詞函數以前,先來看看_compat.py這個檔案,它用於處理Python2/3之間相容的問題。 這個檔案中定義了get_module_res,strdecode,resolve_filename等讀檔時會用到的函數,它們會在__init__.py中頻繁地被調用。

keineahnung2345的博客 635

win10下面安装MTK USB VCOM 驱动

win10下面安装MTK USB VCOM 驱动1.概述2.驱动准备3.主要步骤3.1禁用win10对没有签名驱动限制3.2通过设备管理器安装mtk usb vcom驱动3.3工具版本问题4.禁用win10对没有签名的驱动限制4.1在设置中打开 更新和安全4.2进入恢复4.3在高级启动中点击立即重新启动4.4电脑重启后的几个动作5.通过设备管理器安装MTK USB VCOM 驱动5.1准备驱动5....

qimi123456的专栏 3万+

桌面版Spotify歌词缺失?免费开源的实时歌词显示工具,3步就能用起来

手机版Spotify早就有歌词,桌面版却一直没给。如果你正在找桌面端歌词显示方法,SpotifyLyrics就是答案:一款免费开源的实时歌词显示工具,自动读取桌面版Spotify正在播放的歌曲,把歌词实时送到你眼前,装好到开唱全程不到3分钟。 晚上十一点,单曲循环到副歌,你跟着哼得正起劲,突然卡壳——下一句是啥来着?切到手机看歌词,屏幕亮得刺眼;打开网页搜,歌早放完了。更气人的是,手机App里明

gitblog_00779的博客 520

云计算学习——5G网络技术

华为eNSP网络设备模拟器的基础安装及简单使用

qq_42520799的博客 1445

手把手教你用Switched-Capacitor Converter实现高效DC-DC转换(附常见拓扑对比)

本文详细介绍了开关电容转换器(SC)在高效DC-DC电源设计中的应用,对比了四种常见拓扑结构的优缺点,并提供了损耗分析与效率优化的实战技巧。通过无电感设计,SC转换器在5G模块和可穿戴设备中展现出超高功率密度和微小体积的优势,是电源管理领域的革命性技术。

weixin_30790841的博客 273

金山词霸的词库读取程序

啊哈 啊哈!金山词霸的词库读取程序完成! 经过这个周末2天的奋战,终于完成了一个金山词霸的词库读取程序!当然,中间还看了2场欧洲杯,以及和老婆玩了几回坦克大战,否则可以更快完成吧! 做这个程序的动机很久了,因为一直在背英语单词,如果可以有一个完整的英语词库,可以完成很多事情,比如,查找一个单词的相似单词,window,widow,wind等。很自然的,这个词库就想从我们的金山词霸下

ecai的专栏 3946

【AI编程】Vibe Coding 开发环境搭建与项目实战操作详解

Vibe Coding 开发环境搭建与项目实战操作详解

congge 7335

读取金山词霸的词库程序

经过这个周末2天的奋战,终于完成了一个金山词霸的词库读取程序!当然,中间还看了2场欧洲杯,以及和老婆玩了几回坦克大战,否则可以更快完成吧!做这个程序的动机很久了,因为一直在背英语单词,如果可以有一个完整的英语词库,可以完成很多事情,比如,查找一个单词的相似单词,window,widow,wind等。很自然的,这个词库就想从我们的金山词霸下手了。首先,我去google了一下金山词霸的词库,看

tjulmy的专栏 2112

巡检机器人的基于ROS系统的任务管理架构设计总结

本文探讨了基于ROS(机器人操作系统)的工业巡检机器人任务管理架构设计,提出分层闭环方案。架构围绕稳、准、活、扩四大目标,分为感知层(多源数据融合)、调度层(智能决策)、执行层(动作控制)和数据层(存储交互)。关键技术包括ROS2实时性优化、功能包复用和多机器人协同调度。实践案例显示,该架构在电力巡检中使任务完成率达99%,在化工园区实现95%覆盖率。当前挑战包括SLAM地图漂移和多机通信延迟,未来可通过语义SLAM和区域通信优化。

start_up_go的博客 474

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

elasticsearch的ik分词器实现词库热更新的三种方案

elasticsearch的ik分词器实现词库热更新的三种方案elasticsearch的ik分词器实现词库热更新的三种方案零、ik github官网地址一、ik本地文件读取方式1、添加自定义词典文件2、修改IKAnalyzer.cfg.xml配置文件二、ik远程词库调用1、ik官方文档说明2、在服务中实现http请求,并连接数据库实现热词管理实例:1)、编写http请求服务接口demo2)、ik配置文件修改三、重写ik源码连接mysql/oracle更新词库1、下载 elasticsearch-analy

Yic.z的博客 7100

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

elasticsearch分词器词库热更新三种方案

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、本地文件读取方式二、远程扩展热更新 IK 分词三、重写ik源码连接mysql 一、本地文件读取方式 首先进入elasticsearch目录的plugins目录下,查看目录结构 2.进入confg目录下 创建文件mydic.dic 并添加:“我是中国人” 3.打开config目录下 IKAnalyzer.cfg.xml配置文件 vim IKAnalyzer.cfg.xml 修改内容如下: 4.保存启动es 观察日志 加

one 5890

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Backstage httpRouter 服务实战指南:插件 HTTP 端点注册、认证策略与速率限制配置

`httpRouter`(HTTP 路由)是 Backstage 后端系统(New Backend System)中最常用的核心服务之一,它为每个插件提供向外界暴露 HTTP 端点的标准途径:插件只需向该服务注册一个 Express Router,即可在 `/api/<pluginId>/...` 路径下对外提供服务。本文以 [docs/backend-system/core-services/h

gitblog_00727的博客 1062

金山词霸的词库读取程序(补充)

好几天没有发帖子了 好几天没有发帖子了,对不起各位支持我的朋友! // bow 因为这几天工作终于有了着落,在据了2个offer后,终于又收到了 一个不错的offer,难道是事不过三?不过同时还有一个很有希望、 也是我更加心仪的公司,现在正在催他们索取最后的结果。请大家 不要说我骑驴找马啦(幸好,驴也是一头好驴)。 奉上一篇《金山词霸词库读取程序补充》。 发表了《金山词霸词库读取程

ecai的专栏 4495

Elasticsearch 如何自定义读取 mysql 词库?

Elasticsearch 实战项目中势必会用到中文分词,而中文分词器的选型包含但不限于如下开源分词器: IK 分词器 https://github.com/medcl/elasticsearch-analysis-ik Ansj 分词器 https://github.com/NLPchina/elasticsearch-analysis-ansj jieba 分词器 https://github.com/sing1ee/elasticsearch-jieba-plugin 清华大学 thulac 分词器

weixin_44583135的博客 437
上一篇: (2)读取词库
下一篇: (4)存储单词和翻译
错_对
博客等级 码龄16年 68粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值