over 4 years ago

本篇介紹如何用python nltk 的應用,邏輯語意與推理

1. Introduction

邏輯語意學(logic semantics/formal semantics)
是早期的自然語言處理方法之一
因為自然語言中存在著某種邏輯成份
故可以用數理邏輯的公式來描述自然語言
進行各種邏輯推理

例如 Socrates is a man. 這句話,用一階邏輯式表示:

如果 Socrates is a man. 這句話為真,則:

Read on →
 
over 4 years ago

本篇是我在使用xpath中遇到的一些案例,做些筆記

xpath是什麼,簡而言之,就是可以把網頁的html碼當成Tree
並且用xpath去取得Tree中的某些nodes或leaves
若想了解更多關於xpath是什麼,可以考以下網站
http://www.w3schools.com/XPath/default.asp

以下的xpath實作是以jquery的$x("xpath")經由chrome brwser的console來操作
至於xpath的實際應用,可以用在web crawler中從網頁中擷取想要的東西
這樣就不需要自己寫個parser來處理html了

Read on →
 
over 4 years ago

1.Struct

Ruby 程式語言裡面, 如果想要定義一個新的類別, 但又覺得重新寫一個 class 太麻煩,
有比較方便的方法,

irb> Customer = Struct.new(:name, :phone) do
irb>   def say_hello
irb>    "Hello, I'm #{name}!"
irb>   end 
irb> end 
=> Customer
irb> Gary = Customer.new("Gary", "0923-355-599")
=> #<struct Customer name="Gary", phone="0923-355-599">

irb> Gary.phone
=> "0923-355-599"
irb> Gary.say_hello
=> "Hello, I'm Gary!"
Read on →
 
over 4 years ago

今天來談到URL parse(URL剖析)

在製作web crawler(爬網頁程式)的時候
常常會需要用到URL剖析

1.URL的組成架構

URL的組成架構如下:
[scheme]:/[net_loc]/[path];[params]?[query]#[fragment]

舉個例子
http://www.espn.com:80/basketball/nba/index.htmllang=engl?team=dallas#Roster;

則此URL的架構為:
[scheme] http
[net_loc] www.espn.com:80
[path] /basketball/nba/index.html
[params] lang=engl
[query] team=dallas
[fragment] Roster

Read on →
 
over 4 years ago

今天我們來談談如何用python nltk做中文的的自然語言處理
nltk有內建的中文treebank,是中研院的sinica treebank
是免費的中文treebank
至於要如何使用呢?
首先 先載入模組

>>> from nltk.corpus import sinica_treebank
>>> import nltk

接下來我們來看看treebank裡面的東西:

Read on →
 
over 4 years ago

今天我們來看看nltk.Tree要怎麼用

先載入模組

>>> from nltk import Tree

1.build syntax tree

舉個例子
Gary plays baseball
此句子的剖析樹(syntax tree)是這樣:
nltk1.png

用nltk.Tree來建構tree:

>>> tree=Tree('S',[Tree('NP',['Gary']),
...           Tree('VP',[Tree('VT',['plays']),
...                     Tree('NP',['baseball'])])])
>>> tree.draw()

即可將剖析樹畫出來
若沒安裝 python-tk,你也可以這樣把tree印出

>>> tree.pprint()
'(S (NP Gary) (VP (VT plays) (NP baseball)))'
Read on →
 
over 4 years ago

List comprehension(列表示推導)是一種可以讓程式碼更簡潔,增加可讀性與執行效率的方法。
可以將很多行的for迴圈縮在短短一行之內,很方便!

1.

假如我們現在有一個list--l1

l1=[2,5,3,8,4,9]

若我們想要建立一個新表單l2,是把l1中的每一個元素加上二,最先想到的寫法是:

l2=[]
for l in l1: 
   l2.append(l+2) 

知道怎麼用List comprehension的話,我們可以用列表示:

l2=[l+2 for l in l1] 

這樣看起來就簡潔多了!

Read on →
 
over 4 years ago

Hi, This a demo post of Logdown.

Logdown use Markdown as main syntax, you can find more example by reading this document on Wikipedia

Logdown also support drag & drop image uploading. The picture syntax is like this:

Bloging with code snippet:

inline code

Plain Code

puts "Hello World!"

Code with Language

puts "Hello World!"

Code with Title

hello_world.rb
puts "Hello World!"

MathJax Example

Mathjax

Inline Mathjax

The answser is .

Table Example

Tables Are Cool
col 1 Hello $1600
col 2 Hello $12
col 3 Hello $1

multiple line bracket

align

Logistic Regressioncost function 如下:

而類神經網路的 cost function 如下: