• 沒有找到結果。

Final Project Report – PTT2 Life

N/A
N/A
Protected

Academic year: 2022

Share "Final Project Report – PTT2 Life "

Copied!
9
0
0

加載中.... (立即查看全文)

全文

(1)

Parallel Programming

Final Project Report – PTT2 Life

B94902003 黃竣瑋 B94902032 陳縕儂 B94902095 陳晉暉 B94902097 呂哲安

 System Structure

 Parallel Skill

 MapReduce (Hadoop) 計算高維度的 K-means

 OpenMP

Insert data into DB、testing model weight(bayesian 原理)、尋找 IP location、對推文時間 作 sort(merge sort)

 BBS Crawler

給定板名即可自動抓下所有板名內的文章(也可指定 XX~XX 篇),主要分成下方四層,由底 層網上分別為:

◦ Telnet Protocol

將 telnet 回傳的封包內容的 command 和 content 分開,同時對 telnet 作回應。

◦ Terminal

模擬 BBS 上 buffer 畫面,包含判斷 content 中對游標下的 command 及畫面的改變。

PTT2

Crawler

files Parser controller

Database User

Interface Programs

parser parser parser

user PTT2 manager (wens)

Programs Programs

(2)

判斷此時的 state。(例如:下方出現”請按任意鍵繼續”,則按一下)

◦ Crawler

做每個詳細的動作。(例如:抓文章)

 Parser Controller

功能說明

對每一篇文章去做 parse 的動作,抽取出標題、作者、po 文時間、內文、po 文 ip、推文時 間、推文者、推文內容等資訊,並將其存到資料庫中。

程式平行

對於每一篇文章都丟給一個 thread 去抽取其中的資訊

 經過 Parser Controller 將資料存進資料庫後,再透過 programs 去做不同的處理,以下是 programs components 的各個程式詳細說明。

 Program Components

Terminal

PTT2 Telnet Protocol

Robot

Crawler

data

(3)

1. 變態指數:Beauty 板、Sex 板、Japanavgirls 板 2. 貪吃指數:Food 板

3. 氣質指數:Book 板、Vocal 板、Instrument 板 4. 黑特指數:Hate 板

5. 宅宅指數:WOW 板、Joke 板、Little-Games 板、Comic 板 6. 陽光指數:Baseball 板、Travel 板、Musclebeach 板、Play 板

◦ LM 產生步驟

Step1. Text Normalization (將 noise 過濾掉) perl filter ../corpus/yahoo_news_utf8.txt

Step2. Text Segmentation (依照辭典進行 text segmentation) ./bin/textSegment -i file.txt -o file_ts.txt

Step3. 以 SRILM 的程式計算每個 word 出現的次數 ngram-count -text file_ts+sw -write file.cnt -order 1 Step4. Stopword Removing (根據 stopwordlist 將之移除)

./rm_stopword file_ts stopword.list > file_ts+sw

Step5. 以 SRILM 的程式根據 count 訓練 model (產生 unigram 的 model) ngram-count -read lm.cnt -lm file.lm -order 1

◦ Classification

利用 LM 中的機率計算所有文章對於六個 model 的 weight,以估計個人的六項指 數。

程式平行

使用 OpenMP 用 6 個 threads 將之平行放進 language model 去 testing 分數,如下兩圖:

Sequential

LM1 LM2 LM3 LM4 LM5 LM6

Program

(4)

 效能比較(計算一篇文章的六個 Sequential

0.384u 0.016s 0:00.40 97.5%

Parallel with p = 6

0.320u 0.032s 0:00.21 166.6%

 對於一篇文章就有接近兩倍的 LM1

Parallel 計算一篇文章的六個 weight)

0.384u 0.016s 0:00.40 97.5%

0.320u 0.032s 0:00.21 166.6%

對於一篇文章就有接近兩倍的 speedup

LM2 LM3 LM4 LM5

Program

LM6

(5)

十大名言 功能說明

找尋板主較常用的句子十句

◦ K-means

將所有句子中的 character 大約 10000 多維。每個 sentence 來 clustering。

Step 1. Random 決定 K 個 Step 2. 計算每個點最近的

Step 3. 同一群中取最中心點當作新的 Step 4. 重複 Step 2.和 Step 3.

十句,並且列出相同類別中的句子五句。

character 計算 unigram 及 bigram,並且刪去機率太低的 sentence 是一個 10000 多維的 vector,並在空間中

個 center

計算每個點最近的 center 並歸到同一群(距離為 cosine similarity) 同一群中取最中心點當作新的 center

Step 3.,最後計算出 K 個 cluster

太低的 data,降維至 並在空間中以 K-means

cosine similarity)

(6)

程式平行

使用 MapReduce(hadoop)將每個點(vector)都分給 map 去做,負責算與之最近的 center,而 reducer 負責計算下一個 center 為何。

 效能比較(計算一個個板的所有句子) Sequential

等了 3 小時以上都無法跑完

Parallel with mapper = 4 & reducer = 2 大約 15~20 分鐘

 時間的下降非常明顯(無法計算 speedup)

(7)

凡來過必留下痕跡 功能說明

給定一個個板,找出曾經出現在板上的所有使用者 時間,藉此觀察訪客與版主的熟識程度

參數調整

 Interval-如果超出此區間沒有推文或 UI 上就會出現中斷的時間點

 Density period-以多少時間為單位來計算推文數 程式平行

對所有使用者出現在板上的所有時間作

找出曾經出現在板上的所有使用者,並抓出他們出現的時間 藉此觀察訪客與版主的熟識程度。

如果超出此區間沒有推文或 po 文,則假設此訪客近期內和版主較無關係 上就會出現中斷的時間點。

以多少時間為單位來計算推文數。

對所有使用者出現在板上的所有時間作 sorting 時使用到平行的技術(merge sort)

並抓出他們出現的時間,以及消失的

則假設此訪客近期內和版主較無關係,在

(merge sort)。

(8)

凡 PO 過必留下 IP 功能說明

將一個版主 po 文的 IP 跟時間對照表都抓出來 這些地點的變化呈現在 UI 上

程式平行

對於每一個 IP 去查詢對應到的地點時 化的方式去算每個 IP 對應到的位置

 效能比較(查詢一個個板中的 Sequential

.496u 2.060s 0:52.53 14.3%

Parallel with p = 16

4.680u 1.820s 0:09.12 71.2%

跟時間對照表都抓出來,接著使用 IP 去查詢 po 上,使用 UI 表達出時間與空間的概念。

去查詢對應到的地點時,需要耗費較長的時間,因此使用 對應到的位置。

查詢一個個板中的 distinct IP)

.496u 2.060s 0:52.53 14.3%

4.680u 1.820s 0:09.12 71.2%

po 文的地點,並且把

因此使用 OpenMP,以平行

(9)

 User Interface

使用 QT 及 javascript 製作 user interfaceuser interface

參考文獻

相關文件

透過 Java Servlet 程式存取資料庫.

透過Java Servlet 程式存取資料庫.

sort 函式可將一組資料排序成遞增 (ascending order) 或 遞減順序 (descending order)。. 如果這組資料是一個行或列向量,整組資料會進行排序。

資料包絡分析法(Data Envelopment Analysis, DEA)係為透過資料來進行包絡分析的 方法,是透過數學線型規劃( Linear Programming )

如果我們能獲得更詳細的個人收入資料,以便將年收入的區段分得更細,比 如說每 20

 設備身分資料庫 (equipment identity register; EIR)是用來存放有關手機設備 的身分資訊。.  本籍註冊資料庫 (home

討論結束,整理腦圖。首先嘗試將資料歸類,然 後可以開始收窄範圍,定出文章中心,再按照重

(b) 資料壓縮與減少資料量(Signal compression and reducing speech signal