pinyin

汉字转拼音问题

折月煮酒 提交于 2020-03-19 04:12:46
这是一个非常经典的问题,同时,也是一个很难解决的问题。经典是因为,这个问题非常常见,而且有很多解决方案。 难以解决是因为,存在多音字。可以发现很多股票软件都有这问题,比如zgyh 出来的不是中国银行,而是找不到, 这是因为,中国银行的 “行” 查出来读的是 "xing" 。我篇文章我只是提供了一个原始的转换方法,就是查表。 和你以前看过的算法可能不一样的是,我加了一个二分查找,我看到的一个开源的解决方案是顺序查找的。 关于,多音字问题,我只有一个小规模的多音字表,从所有股票名称里面纠正过来的。解决方案是这样的:在查找拼音的时候, 查找一下这个字是否在多音字表里面,如果是,那么查找前后组成的词,来决定读什么。如果有谁有完整的多音字表,或者有更好的 解决方案,请给我留言。我一定拜谢。 代码 <? php /* * * 初始化 * * @param string $file 拼音代码对应表 * @return array 把这个对应表映射成array的格式 */ function pinyin_init( $file ) { $pinyin = file ( $file ); if ( empty ( $pinyin )) { throw new Exception ( " load pinyin table error. " ); } foreach ( $pinyin as $k =

iOS将汉字转换为拼音

家住魔仙堡 提交于 2020-03-19 03:50:30
将汉字转换为拼音 - (NSString *)chineseToPinyin:(NSString *)chinese withSpace:(BOOL)withSpace { CFStringRef hanzi = (__bridge CFStringRef)chinese; CFMutableStringRef string = CFStringCreateMutableCopy(NULL, 0, hanzi); CFStringTransform(string, NULL, kCFStringTransformMandarinLatin, NO); CFStringTransform(string, NULL, kCFStringTransformStripDiacritics, NO); NSString *pinyin = (NSString *)CFBridgingRelease(string); if (!withSpace) { pinyin = [pinyin stringByReplacingOccurrencesOfString:@" " withString:@""]; } return pinyin; } 来源: https://www.cnblogs.com/llguanli/p/7199760.html

ES 拼音前缀匹配的一种方案

南笙酒味 提交于 2020-03-08 22:20:39
环境7.1.1 PUT /pinyin2 { "settings" : { "analysis" : { "analyzer" : { "first_py_letter_analyzer" : { "tokenizer" : "first_py_letter" }, "full_pinyin_letter_analyzer" : { "tokenizer" : "full_pinyin_letter" } }, "tokenizer" : { "first_py_letter" : { "type" : "pinyin", "keep_first_letter" : true, "keep_full_pinyin" : false, "keep_original" : false, "limit_first_letter_length" : 16, "lowercase" : true, "trim_whitespace" : true, "keep_none_chinese_in_first_letter": false, "none_chinese_pinyin_tokenize": false, "keep_none_chinese": true, "keep_none_chinese_in_joined_full_pinyin": true }, "full_pinyin

Ubuntu16.04LTS ibus pinyin 无法输入中文的处理办法

久未见 提交于 2020-01-22 07:41:11
我本来是想用Sogou搜狗输入法, 但是折腾了两天,搜狗输入法下始终是无法输入中文汉字。主要是fcitx-qt4插件工具包已经在新版ubuntu不支持了,导致sogou中文输入支持的sogou-qimpanel程序缺失。于是放弃了。转而尝试使用ibus输入法框架下ibus pinyin。ubuntu是自带ibus输入法框架的。如果没有需要先提前安装一下。 键盘按CTRL+ALT+T,打开终端。通过以下命令操作: sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 启动ibus框架:im-config -s ibus 安装拼音引擎: 执行 sudo apt-get ibus-pin 后, 系统语言输入法设置为 iBus 后,注销重新登录系统。正常情况下可以使用拼音汉字输入了。 问题是虽然能够在窗口右上角显示 "拼"的输入法标示。 但键盘输入还是英文。我猜测是安装的fcitx输入法惹得祸。在网上搜索查看,的确有网友遇到过这个坑: fcitx惹得祸,卸载干净,使用ibus 操作步骤 系统设置-> 语言支持->切换输入法为ibus 彻底卸载fcitx : ps:如果有安装搜狗尽量把搜狗一块卸掉: sudo dpkg -l so* sudo apt-get remove sogoupinyin (sudo

在语雀中输入汉语拼音

百般思念 提交于 2020-01-20 03:02:19
在语雀中,无法使用HTML中的 <ruby> 标签来输入拼音,但是语雀可以支持latex公式块的插入,所以我们可以借助公式中的latex来做汉语拼音的输入,具体来说也就是通过latex中的overset指令来输入上下并排的字符。 先举一个简单的例子 \overset{bái}{白}\overset{rì}{日}\overset{yī}{依}\overset{shān}{山}\overset{jìn}{尽},\overset{huáng}{黄}\overset{hé}{河}\overset{rù}{入}\overset{hǎi}{海}\overset{liú}{流} 然后可以让这个字稍微大一些,比如(通过\small,\large,\huge等命令来控制字体) \huge{\overset{bái}{白}\overset{rì}{日}\overset{yī}{依}\overset{shān}{山}\overset{jìn}{尽},\overset{huáng}{黄}\overset{hé}{河}\overset{rù}{入}\overset{hǎi}{海}\overset{liú}{流}} 也可以通过\text来设置不使用斜体来渲染拼音: \huge{\overset{\text{bái}}{白}\overset{\text{rì}}{日}\overset{\text{yī}}{依}

Elasticsearch分词

眉间皱痕 提交于 2020-01-14 18:06:35
一、 analysis与analyzer analysis:   文本分析,是将全文本转换为一系列单词的过程,也叫分词。analysis是通过analyzer(分词器)来实现的,可以使用Elasticearch内置的分词器,也可以自己去定制一些分词器。除了在数据写入时将词条进行转换,那么在查询的时候也需要使用相同的分析器对语句进行分析。 analyzer(分词器): 由三部分组成: Character Filter:将文本中html标签剔除掉。 Tokenizer:按照规则进行分词,在英文中按照空格分词 Token Filter:将切分的单词进行加工,小写,删除 stopwords(停顿词,a、an、the、is等),增加同义词 1.1 内置的分词器 分词器名称 处理过程 Standard Analyzer 默认的分词器,按词切分,小写处理 Simple Analyzer 按照非字母切分(符号被过滤),小写处理 Stop Analyzer 小写处理,停用词过滤(the, a, this) Whitespace Analyzer 按照空格切分,不转小写 Keyword Analyzer 不分词,直接将输入当做输出 Pattern Analyzer 正则表达式,默认是\W+(非字符串分隔) 1.2 内置分词器使用示例 Standard Analyzer GET _analyze {

elasticsearch应用与实战

自古美人都是妖i 提交于 2020-01-08 01:47:42
满足中文、拼音、首字母数字等检索用户信息。 准备工作 安装es,logstash,es-head(可以不安装,只是一个集群监控系统)注意版本兼容,我都用的5版本。 添加拼音分词、中文分词插件(手动把jar放到如下位置即可) 创建索引 例子只对用户名做了检索 PUT /user { "settings" : { "analysis" : { "analyzer" : { "pinyin_analyzer" : { "tokenizer" : "my_pinyin" } }, "tokenizer" : { "my_pinyin" : { "type" : "pinyin", "keep_separate_first_letter" : false, "keep_full_pinyin" : true, "keep_joined_full_pinyin" : true, "keep_original" : true, "limit_first_letter_length" : 16, "lowercase" : true, "remove_duplicated_term" : true } } } }, "mappings": { "user":{ "properties": { "dept_id":{ "type": "integer" }, "id":{ "type":

获得汉字的拼音首字母以及整个拼音

喜欢而已 提交于 2020-01-04 01:21:19
1 SQL Server 代码: 获得首字母: CREATE function fun_getPY(@str nvarchar(4000)) returns nvarchar(4000) as BEGIN declare @word nchar(1),@PY nvarchar(4000) set @PY='' while len(@str)>0 BEGIN set @word=left(@str,1) set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901 then ( select top 1 PY from ( select 'A' as PY,N'驁' as word union all select 'B',N'簿' union all select 'C',N'錯' union all select 'D',N'鵽' union all select 'E',N'樲' union all select 'F',N'鰒' union all select 'G',N'腂' union all select 'H',N'夻' union all select 'J',N'攈' union all select 'K',N'穒' union all select 'L',N'鱳' union all

可重入锁与读写锁

做~自己de王妃 提交于 2019-12-30 19:05:35
一、 analysis与analyzer analysis:   文本分析,是将全文本转换为一系列单词的过程,也叫分词。analysis是通过analyzer(分词器)来实现的,可以使用Elasticearch内置的分词器,也可以自己去定制一些分词器。除了在数据写入时将词条进行转换,那么在查询的时候也需要使用相同的分析器对语句进行分析。 analyzer(分词器): 由三部分组成: Character Filter:将文本中html标签剔除掉。 Tokenizer:按照规则进行分词,在英文中按照空格分词 Token Filter:将切分的单词进行加工,小写,删除 stopwords(停顿词,a、an、the、is等),增加同义词 1.1 内置的分词器 分词器名称 处理过程 Standard Analyzer 默认的分词器,按词切分,小写处理 Simple Analyzer 按照非字母切分(符号被过滤),小写处理 Stop Analyzer 小写处理,停用词过滤(the, a, this) Whitespace Analyzer 按照空格切分,不转小写 Keyword Analyzer 不分词,直接将输入当做输出 Pattern Analyzer 正则表达式,默认是\W+(非字符串分隔) 1.2 内置分词器使用示例 Standard Analyzer GET _analyze {

Python 中拼音库 PyPinyin 的用法

梦想与她 提交于 2019-12-14 16:21:06
【摘要】 最近碰到了一个问题,项目中很多文件都是接手过来的中文命名的一些素材,结果在部署的时候文件名全都乱码了,导致项目无法正常运行。 后来请教了一位大佬怎么解决文件名乱码的问题,他说这个需要正面解决吗?不需要,把文件名全部改掉,文件名永远不要用中文,永远不要。 我想他这么说的话,一定也是凭经验得出来的。 这里也友情提示大家,项目里面文件永远不要用中文,永远不要! 好,那不用中文用啥?平时来看,一般我们都会用英文来命名,一般也不会出现中文,比如 resource, controller, result, view, spider 等等,所以绝大多数情况下,是不会出现什么问题的。但是也有个别的情况,比如一些素材、资源文件可能的中文命名的,那么这时候该咋办呢? 首先像,因为是中文资源文件,我们要改成非中文命名的,无非两种,一种是英文,一种是拼音。 如果改英文,当然可以翻译、我们想翻译的话,逐个人工翻译成本太高,机器翻译的话,翻译完可能有些文不对题了,而且我们自己也不知道一些奇怪的资源英语应该叫什么,所以到时候真的找起来都找不到了。 所以第二种解决方案,那就是拼音了。中文转拼音,很自然,而且一个字就对应一串拼音,而且也非常容易从拼音看懂是什么意思,所以这确实是一个不错的方案。 那么问题就来了,怎样把一批中文文件转拼音命名呢?下面就让我们来了解 Python 的一个库 PyPinyin 吧