标签归档:python

Jupyter Notebook

开始系统学习一些machine learning工程性质的东西,发现这个Jupyter Notebook真是一个颇为神器的玩意。适合用来编写跟Python相关技术教材。

也许过去十多年接触的Python,都是断断续续,把它当成一个普通的script language,想着写着,就python调用一下,导致这么多年在Python上好像一点长进都没有。当然了,如果应用上就是一个script language,那是无所谓的。

然而,如今Python如日中天,大量的前沿学术、工程均使用py的情况下,再低看它就变得不再合适了。

说回Jupyter,同样的概念应用于其他的script language也应该适合,只是在AI方面,大量的代码如果缺乏文本的描述,则晦涩难懂,而随时修改输入输出又是AI程序调试的刚需,所以Jupyter这个概念就在AI应用最多的Python语言上得以壮大。

opencv for rectangle image recognition

我决定启动这项在心中停留了好几年的想法。

辅助性的输出应当是:熟悉opencv的开发以及图像检索的各种算法的优劣。熟悉Python。熟悉Object-C的开发。

目标先不要定太高,先从一个有限的标准图片库进行检索开始:

  • 库里面有300~2000张长方形的彩色图片。
  • 检索的图片源来自互联网或者相机。
  • 待检索的图片中可能包含有长方形区域,匹配库中的某一图片(的主要区域,边缘部分有可能不一致,主要区域上可能被污损)。括号内的难度递增。
  • 待检索图片主要区域可能有色偏。
  • 待检索图片主要区域可能有沿曲面的变形。
  • 待检索图片主要区域可能有轻微的平面几何变形。
  • 检索结果可以包含一个小集合3~10个库内图片,并附带其匹配得分。

继续阅读

从博客大巴导出全部文章

其实如果blogbus能提供一个完整的导出工具,我就不需要自己花1个小时去写和测试这个代码。文件头尾需要加一下才是完整的rss文件。然后用wordpress的RSS importer就可以了。

另外,如果正文中带有链接,而链接中又含有非ascii字符,HTML parser也会失败。

export.py内容如下:

#!/usr/bin/env python
# Author:polo@live.cn
# coding=utf-8
import httplib
import re
from HTMLParser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return '\n\n'.join(self.fed)

#strip html tags
def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

#fetch a blog's meta data, and append to xml file, and return the previous blog's url
def fetch_blog(surl):
    conn = httplib.HTTPConnection('zhengrenchi.blogbus.com')
    conn.request('GET', surl)
    rep = conn.getresponse()
    preurl = ''

    if rep.status == 200 :
        content = rep.read()
        content = content.replace('\n', '')
        content = content.replace('\r', '')
        r = re.compile('postHeader">.*?<h2>(.*?)</h2><h3>(.*?) \| Tag:(.*?)</h3>.*?</div>')
        s_match = r.findall(content)
    
        for k1 in s_match:
            title = k1[0]
            time  = k1[1]
            tags  = k1[2]
            r = re.compile('<a href.*?>(.*?)</a>')
            tagsa = r.findall(tags)
    
        r = re.compile('<div>.*?<p.*?</p>(.*?)<div>')
        r1 = re.compile('<div>.*?<p.*?</p>(.*?)<div>')
        s_match = r.findall(content)
        if s_match:
            for k1 in s_match:
                body = k1
        else:
            s_match = r1.findall(content)
            for k1 in s_match:
                body = k1

        r = re.compile('<span><a href=\'(.*?)\'>')
        s_match = r.findall(content)
        for k1 in s_match:
            preurl = k1

        outfile = open('blog.xml','a+')
        outfile.write('<item>')
        outfile.write('<title>' + title + '</title>')
        outfile.write('<pubdate>' + time + '</pubdate>')
        #print body
        outfile.write('<description><![CDATA[' + strip_tags(body) + ']]></description>')
        for k2 in tagsa:
            outfile.write('<category>' + k2 +'</category>')
        outfile.write('</item>')
        outfile.close()

    conn.close()
    return preurl

#set the original url
xurl = '/logs/228488258.html'

while (xurl != ''):
    print xurl
    xurl = fetch_blog(xurl)