2008年7月2日

有备无患:pinyin-urlify - 根据汉字自动生成拼音 URL

根据文章标题中的英语单词自动生成文章的 URL 是一个很好的体验,比如标题为“Girl's death sparks riot in China”,会被转换成“girls-death-sparks-riot-china”这样与之对应的 URL。这样既可获得 Cool URIs,又便于用户记忆,同时也有利于 SEOBloggerWordpress 也都支持类似体验。而中文的文章标题,也可以先将其中的汉字转化为拼音后再组成相应的 URL,比如标题为“俯卧撑”,可以被转换成“fu-wo-cheng”。

pinyin-urlify 是我这几天写的能根据汉字自动生成拼音 URL 的 Python 脚本。它可以将汉字映射成有英语字母组成的拼音,和多种西方语言的字母(拉丁语、希腊语、俄语等)映射成相近的英语字母。要说明的是,汉字-拼音的映射表是从 pyzh 项目中获得,而其他西方语言的映射表则是从 Django 项目中获得,特表感谢

pinyin-urlify 支持自定义停用词列表(stop words)和保留词列表(reserved words)。停用词列表中的单词都会被过滤,不会出现在生成的 URL 中。生成的 URL 如果和保留词列表中的某一个单词匹配,则会被替换成默认的 URL 字符串。pinyin-urlify 可以指定 URL 的最大长度。不过,如果遇到有较多汉字组成的文章标题的话,实际生成的 URL 可能会比限定的最大长度小一些。我希望能在以后修正这一点。

使用示例

>>> from urlify import urlify
>>> urlify(u'三个俯卧撑引发的血案', default='blog_post',
...        max_length=50, stop_words=[u'is', u'a', u'an'],
...        reserved_words=[u'new', u'edit'])
u'san-ge-fu-wo-cheng-yin-fa-de-xue'


欢迎大家用 svn 检出 pinyin-urlify 的副本来使用。欢迎任何意见或建议 :-)

$ svn checkout http://pinyin-urlify.googlecode.com/svn/trunk/ pinyin-urlify

4 评论:

fang 说...

少了最后一个字?

wyt 说...

停用词里有'an',所以“案”的拼音'an'也被过滤掉了

匿名 说...

你的博客不错。

wyt 说...

@匿名,谢谢

发表评论

欢迎留言

订阅我的博客

搜索我的博客

正在加载...

我的豆瓣广播

分享阅读

豆瓣秀

休斯敦火箭

我的文章归档

版权申明