[OT] 如何判断一串英文字母是否为拼音?

742 views
Skip to first unread message

依云

unread,
Apr 17, 2012, 7:31:55 AM4/17/12
to python-cn
一串字符,可能是拼音或者英文或者代码等。如何判断它是否为拼音呢,在不使用
诸如 Google Translate 的前提下?

--
Best regards,
lilydjwg

Linux Vim Python 我的博客:
http://lilydjwg.is-programmer.com/
--
A: Because it obfuscates the reading.
Q: Why is top posting so bad?

林孟潇

unread,
Apr 17, 2012, 7:41:49 AM4/17/12
to pyth...@googlegroups.com
判断是拼音的标准是什么?

--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/CpyUg
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

wang tiezhen

unread,
Apr 17, 2012, 7:45:48 AM4/17/12
to pyth...@googlegroups.com

单子的拼音是字母的有限组合,不考虑内容是否有意义的情况下,能否做一个匹配呢?

qihang zhang

unread,
Apr 17, 2012, 7:48:42 AM4/17/12
to pyth...@googlegroups.com
可以思考一下  人是如何分辨一串英文字母是拼音是英文单词的

感觉应该是从 声母 和 韵母来识别~
字符串应该是以声母开始 韵母结束
然后还有长度限制之类的

依云

unread,
Apr 17, 2012, 7:55:34 AM4/17/12
to pyth...@googlegroups.com
On Tue, Apr 17, 2012 at 07:48:42PM +0800, qihang zhang wrote:
> 可以思考一下 人是如何分辨一串英文字母是拼音是英文单词的
>
> 感觉应该是从 声母 和 韵母来识别~
> 字符串应该是以声母开始 韵母结束
> 然后还有长度限制之类的

把字符串按拼音的规则解析?这样做是可以,但是要求有些严。我在想,能不能像
OCR 那样进行模式识别?然后再加上机器学习什么的?

Shell Xu

unread,
Apr 17, 2012, 8:15:59 AM4/17/12
to python-cn

看看cedict?

from miui

Xunzhen Quan

unread,
Apr 17, 2012, 8:31:44 AM4/17/12
to pyth...@googlegroups.com
 因为单字拼音的规则很少所以其实用规则识别还是很简单的不必要牵涉到那些东西吧
不过如果你要计算其作为一段中文的拼音的概率,倒是可以考虑那些

2012/4/17 依云 <lily...@gmail.com>

amao

unread,
Apr 17, 2012, 9:30:04 AM4/17/12
to python-cn(华蟒用户组,CPyUG 邮件列表)
拼音的音节并不多,直接匹配不行吗?

依云

unread,
Apr 17, 2012, 9:53:25 AM4/17/12
to pyth...@googlegroups.com
好吧,就这样了。我还指望能研究下语种识别之类的呢。。。

Xunzhen Quan

unread,
Apr 17, 2012, 10:01:00 AM4/17/12
to pyth...@googlegroups.com
语种识别又是别的话题了呢……其实判断单词出现频率就可以了我想?

2012/4/17 依云 <lily...@gmail.com>
好吧,就这样了。我还指望能研究下语种识别之类的呢。。。

luwen ing

unread,
Apr 17, 2012, 10:42:37 AM4/17/12
to pyth...@googlegroups.com
拼音组合不多吧,直接穷举算了,

2012/4/17 Xunzhen Quan <quanx...@gmail.com>:

--
regards,
luwening

Wang Xuerui

unread,
Apr 17, 2012, 12:15:45 PM4/17/12
to pyth...@googlegroups.com
模仿chardet和一般的编码识别的思路,做状态机。。。每个字母出现后如果是全拼就只能跟特定的几个字母,如果出现其它的字母就是非法拼音序列,于是可以做出比较准确的判断了

luwen ing <ning...@gmail.com>编写:

依云

unread,
Apr 17, 2012, 12:26:04 PM4/17/12
to pyth...@googlegroups.com
如果是编程语言呢?如果是一句汉字让你判断是中文还是日语呢?

Mayli Hellsing

unread,
Apr 17, 2012, 12:36:31 PM4/17/12
to pyth...@googlegroups.com
ubuntu-cn 的irc bot采用的判断方法是拼音字典…
Mengyang Li
NKU,TJ,CHN

依云

unread,
Apr 17, 2012, 12:54:55 PM4/17/12
to pyth...@googlegroups.com
哦,那里有认拼音的 bot?有源码?

Liang Sun

unread,
Apr 17, 2012, 9:51:29 PM4/17/12
to pyth...@googlegroups.com
考虑容错性的话,建议还是模式识别吧。

iamzcy_hit iamzcy_hit

unread,
Apr 17, 2012, 10:12:58 PM4/17/12
to pyth...@googlegroups.com
训练一个分类器吧

考虑容错性的话,建议还是模式识别吧。
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/CpyUg
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp



--
我们注定要被刻上这个时代的烙印.....

iamzcy_hit iamzcy_hit

unread,
Apr 17, 2012, 10:34:50 PM4/17/12
to pyth...@googlegroups.com
楼主是这个意思吗?
判断这个字母序列“nihaowoshiyigexuesheng”是英文串还是汉语拼音串???
--
我们注定要被刻上这个时代的烙印.....

依云

unread,
Apr 18, 2012, 1:22:21 AM4/18/12
to pyth...@googlegroups.com
对。另外,可能有空格。还可能是一行代码什么的,我要判定它是否为拼音,然后
拿给搜狗云输入法之类的「翻译」成汉字。

On Wed, Apr 18, 2012 at 10:34:50AM +0800, iamzcy_hit iamzcy_hit wrote:
> 楼主是这个意思吗?
> 判断这个字母序列“nihaowoshiyigexuesheng”是英文串还是汉语拼音串???
>
> 在 2012年4月18日 上午10:12,iamzcy_hit iamzcy_hit <iamz...@gmail.com>写道:
>
> > 训练一个分类器吧
> >
> > 在 2012年4月18日 上午9:51,Liang Sun <i...@liangsun.org>写道:
> >
> > 考虑容错性的话,建议还是模式识别吧。
> >>
> >>
> >> On Tuesday, April 17, 2012 7:31:55 PM UTC+8, 依云 wrote:
> >>>

> >>> 一串字符,可能是拼音或者英文或者代码等。**如何判断它是否为拼音呢,在不使用


> >>> 诸如 Google Translate 的前提下?
> >>>
> >>> --
> >>> Best regards,
> >>> lilydjwg
> >>>
> >>> Linux Vim Python 我的博客:

> >>> http://lilydjwg.is-programmer.**com/<http://lilydjwg.is-programmer.com/>

Eric Miao

unread,
Apr 18, 2012, 1:52:36 AM4/18/12
to pyth...@googlegroups.com

前几天用到的时候随手写的,按拼音规则判断,拼音规则根据WikiPedia来的。

2012/4/18 依云 <lily...@gmail.com>
pinyinsplit.txt

Eric Yue

unread,
Apr 18, 2012, 2:23:34 AM4/18/12
to pyth...@googlegroups.com
我试一下   包含了所有情况么?

#####################################################
###  Author : Eric Yue
###  From   : Moonlight Labs
###  关注移动互联网#iOS开发#Android开发#Python#NoSQL
#####################################################

Eric Yue

unread,
Apr 18, 2012, 2:37:30 AM4/18/12
to pyth...@googlegroups.com
很不错。收藏了。


#####################################################
###  Author : Eric Yue
###  From   : Moonlight Labs
###  关注移动互联网#iOS开发#Android开发#Python#NoSQL
#####################################################



依云

unread,
Apr 18, 2012, 3:07:18 AM4/18/12
to pyth...@googlegroups.com
Thanks, it works like a charm!

On Wed, Apr 18, 2012 at 01:52:36PM +0800, Eric Miao wrote:
> 前几天用到的时候随手写的,按拼音规则判断,拼音规则根据WikiPedia来的。
>
> 2012/4/18 依云 <lily...@gmail.com>
>
> > 对。另外,可能有空格。还可能是一行代码什么的,我要判定它是否为拼音,然后
> > 拿给搜狗云输入法之类的「翻译」成汉字。
> >
> > On Wed, Apr 18, 2012 at 10:34:50AM +0800, iamzcy_hit iamzcy_hit wrote:
> > > 楼主是这个意思吗?
> > > 判断这个字母序列“nihaowoshiyigexuesheng”是英文串还是汉语拼音串???
> > >
> > > 在 2012年4月18日 上午10:12,iamzcy_hit iamzcy_hit <iamz...@gmail.com>写道:
> > >
> > > > 训练一个分类器吧
> > > >
> > > > 在 2012年4月18日 上午9:51,Liang Sun <i...@liangsun.org>写道:
> > > >
> > > > 考虑容错性的话,建议还是模式识别吧。
> > > >>
> > > >>
> > > >> On Tuesday, April 17, 2012 7:31:55 PM UTC+8, 依云 wrote:
> > > >>>
> > > >>> 一串字符,可能是拼音或者英文或者代码等。**如何判断它是否为拼音呢,在不使用
> > > >>> 诸如 Google Translate 的前提下?

--
Best regards,
lilydjwg

Linux Vim Python 我的博客:

Rujia Liu

unread,
Apr 18, 2012, 3:12:38 AM4/18/12
to pyth...@googlegroups.com
赞,不过字符串不能太长,否则会有效率问题。试试:

print split_pinyin('aoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaox')

就知道了

改成递推就没问题了

2012/4/18 Eric Miao <eric....@gmail.com>:

bhuztez

unread,
Apr 18, 2012, 3:29:01 AM4/18/12
to python-cn(华蟒用户组,CPyUG 邮件列表)
没有人工干预一串拼音也能转换成汉字?感觉没那么容易吧。

On Apr 18, 1:22 pm, 依云 <lilyd...@gmail.com> wrote:
> 对。另外,可能有空格。还可能是一行代码什么的,我要判定它是否为拼音,然后
> 拿给搜狗云输入法之类的「翻译」成汉字。
>
>
>
>
>
>
>
>
>
> On Wed, Apr 18, 2012 at 10:34:50AM +0800, iamzcy_hit iamzcy_hit wrote:
> > 楼主是这个意思吗?
> > 判断这个字母序列"nihaowoshiyigexuesheng"是英文串还是汉语拼音串???
>

> > 在 2012年4月18日 上午10:12,iamzcy_hit iamzcy_hit <iamzcy...@gmail.com>写道:
>
> > > 训练一个分类器吧
>
> > > 在 2012年4月18日 上午9:51,Liang Sun <i...@liangsun.org>写道:
>
> > > 考虑容错性的话,建议还是模式识别吧。
>
> > >> On Tuesday, April 17, 2012 7:31:55 PM UTC+8, 依云 wrote:
>
> > >>> 一串字符,可能是拼音或者英文或者代码等。**如何判断它是否为拼音呢,在不使用
> > >>> 诸如 Google Translate 的前提下?
>
> > >>> --
> > >>> Best regards,
> > >>> lilydjwg
>
> > >>> Linux Vim Python 我的博客:
> > >>>http://lilydjwg.is-programmer.**com/<http://lilydjwg.is-programmer.com/>
> > >>> --
> > >>> A: Because it obfuscates the reading.
> > >>> Q: Why is top posting so bad?
>
> > >>> --
> > >> 邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
> > >> 规则:http://code.google.com/p/cpyug/wiki/PythonCn
> > >> 发言: pyth...@googlegroups.com
> > >> 退订: python-cn+...@googlegroups.com (向此发空信即退!)
> > >> 详情:http://code.google.com/p/cpyug/wiki/CpyUg

> > >> 严正: 理解列表! 智慧提问!http://wiki.woodpecker.org.cn/moin/AskForHelp


>
> > > --
> > > 我们注定要被刻上这个时代的烙印.....
>
> > --
> > 我们注定要被刻上这个时代的烙印.....
>
> > --
> > 邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
> > 规则:http://code.google.com/p/cpyug/wiki/PythonCn
> > 发言: pyth...@googlegroups.com
> > 退订: python-cn+...@googlegroups.com (向此发空信即退!)
> > 详情:http://code.google.com/p/cpyug/wiki/CpyUg

> > 严正: 理解列表! 智慧提问!http://wiki.woodpecker.org.cn/moin/AskForHelp

依云

unread,
Apr 18, 2012, 5:09:16 AM4/18/12
to pyth...@googlegroups.com
说了是发给搜狗云输入法转了。或者QQ云输入法。

> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

jyf

unread,
Apr 18, 2012, 10:31:42 AM4/18/12
to pyth...@googlegroups.com
On Wed, Apr 18, 2012 at 05:09:16PM +0800, 依云 wrote:
> 说了是发给搜狗云输入法转了。或者QQ云输入法。

感觉不是正交的 没办法

jamiesun

unread,
Apr 20, 2012, 12:24:59 AM4/20/12
to pyth...@googlegroups.com
常用汉子和词汇都是很有限的,做成拼音字典是可以的,我以前做过一个MP3搜索,按歌名,歌手名来搜索,界面终端只能输入拼音,全部是用拼音字典来匹配的。


Elias Soong

unread,
Apr 20, 2012, 4:31:20 AM4/20/12
to pyth...@googlegroups.com
最简单的语种识别是比较 相邻两个字母 组合的出现概率(通常只需比较出现频率最高的字母组合)。NLTK 的配套文档具体介绍过这个方法。叫 N-Gram 。

这种情况需要待识别的文本有一定长度,否则还得靠字典。

于 12-4-17 下午9:53, 依云 写道:

Reply all
Reply to author
Forward
0 new messages