Archive for the ‘Python’ Category
Tuesday, April 13th, 2010
写了小程序(pickupnewords.py)可以找出文本中的英文生词,比如你在观影前可以找出英文字幕中你不认识的单词,逐一查明,这样就不会边看边查字典了,打扰你欣赏电影了 ^_^
程序最新源代码在github。下面简单说明一些关于这个程序的东西。
我这程序肯定无法强大到能读取你大脑的信息得知你认不认识某个单词,它要借助本地存储,其实就是一个用pickle模块把你已经认识的单词集合写入到一个文件里,程序因此有了依据。当然了不可能把'is'、'apple'这样的词也判为生词,因此得有个基础单词库,我用的是Oxford 3000 wordlist,这个是牛津字典的单词释义所用的基础单词,我已经把它转换好了,文件名是oldwords.dat。一个没有记忆不会学习的人是可怕的,程序也是如此,这是我下面要讲的。
许多英语达人的词汇量肯定不止3000,所以在初期运行这个程序你会发现有好多单词你都认识,或者日后某些单词反复出现,慢慢你已经熟知了,那么就需要让程序记住这些单词。pickupnewords.py提供了一个非常简单甚至简陋的命令接口,告诉程序哪些单词需要记忆。再列出可能的生词列表后,程序会等待你输入指令了。你能输入的指令有下列几种:
0,9,13, 21
生词列表的每个单词前都有个序号,你输入了哪几个序号程序就会记住对应的单词
!0,9,13, 21
这个仅仅比上面的多了一个感叹号"!",它的意思就是相反,除了感叹号后面列出的序号对应的单词都要记忆
all
记住所有列出的单词
! 或 !all 或 直接回车
不记忆列出的任何单词,它们都是生词
使用方法:
下载pickupnewords.py和oldwords.dat,运行:
python pickupnewords.py /path/to/your/english.srt
注:本程序只支持srt这类的纯文本环保格式。
任何问题建议欢迎留言 ;-)
===== 补充 =====
单词的分词处理的十分简单,能去掉字幕文件中无意义、非英文单词的部分,但对于诸如"I've"、"shouldn't"识别为一个单词,"copied"、"driving"这样的过去分词和现在分词仍然作为生词,虽然原型是非常基础的单词。Python应该有好的分词库(我了解的不多,如有好的也请推荐),但我不想把事情搞的太复杂了,我们完全可以把这些词让程序记住,或者干脆忽略,反正除此之外能找出真正的生词就行。
Update 4-21:
@weakish 在下面的留言说的很对。其实这个程序离真正可用还很远,还需要优化。
Posted in Python | 13 Comments »
Sunday, May 10th, 2009
常用Twitter或者饭否之类服务的朋友都应该知道tinyurl的大名吧~ 简言之就是将长长的网址缩短,变成这个样子:http://tinyurl.com/qn8v7y
如果在自个儿的域名上实现一下类似的服务,应该很好玩~ 现在我已经做好了,只需4个文件配合即可工作,有兴趣的朋友可以继续往下看。测试方法,在浏览器中输入 http://vvoody.org/cmprzurl.py?longurl=http://vvoody.org/blog/?p=265 ,在longurl=后添上你想缩短的地址即可得到一个短网址。这篇文章缩短后的地址就是:http://vvoody.org/baJjPy 哈哈真巧,Py 结尾!
Posted in Programming, Python | 7 Comments »
Saturday, September 6th, 2008
刚才看到WANG Cong那儿贴的一个显示汉字拼音的Python小脚本,复制下来到Emacs,调整了一下缩进,结果竟然把finally前没了缩进,不属于try了。于是缩进错误。
以前也调整过一些python的缩进,也常常导致缩进错误。带着疑惑去水木询问了一下,得知竟然有两个不同的python mode:一个是Emacs自己写的python.el,另一个是 Python 项目写的 python-mode.el,你可以在 /usr/doc/python-2.5.2/Misc/python-mode.el 类似地方找到。立马换用了 python-mode.el,起码之前提到的脚本缩进调整正确。嘿嘿,就用他了。
更多关于 Emacs 中 Python Mode 的信息请见:
http://www.emacswiki.org/cgi-bin/wiki/PythonMode
Posted in Python | 2 Comments »
Monday, August 18th, 2008
从BT上下了部电影,又从射手下了字幕,播放是发现字幕比声音晚了大概8、9秒。当然,mplayer可以使用参数"-subdelay 9"来达到目的,可我还是希望能直接把字幕文件调整好。网上搜了一下,字幕调解软件还是有不少,都是GUI的。对我而言只要调解时间轴就够了,所以命令行的比较好,于是自己写了个python的脚本。
这个脚本仅是简单的对字幕中的时间轴进行加或减,以达到调解时间轴的目的。不熟悉python的库让我兜了一大圈,本以为datetime不能处理时间的加减,后来才发现原来可以!对OO的不熟又让我被datetime类搞的小晕了一下。
用的时候执行:python adjust_srt_timeline.py your_movie.srt delay_time
your_movie.srt 就是电影的字幕文件,delay_time则是你想字幕时间轴延迟的时间。比如,字幕比声音晚了8.5秒,那么delay_time就是 -8.5。
效果图
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Some srt subtitile is slower or faster. This little script can adjust it.
#
# Usage: python adjust_srt_timeline.py your_movie.srt delay_second
# e.g. python adjust_srt_timeline.py Shortbus.chs.srt -8.5
#
# Then there will be a "Shortbus.chs.srt_new" file.
#
# Copyright (C) 2008, vvoody
# GPLv3 applies ...
Posted in Python | 3 Comments »
Saturday, February 9th, 2008
用python做了个很简单的验证,答不对问题可不能访问下载哦^_^
这个问题是3班的肯定知道的:D 特此通告。
Posted in Python | No Comments »