上一次我寫的[url=宋詞分析[/url],是在windows環境下的,預設編碼是gbk(936),所以在處理utf-8的時候,需要轉換為gbk,再進行處理分析。
不過現在已經是ruby1.9版了,那麼就改一下,在uft-8下處理程式,主要就是把原宋詞檔案內容從gbk編碼為utf-8,再進行相應的處理,dos下需要chcp 65001轉換為utf-8編碼,再執行才可以看到正確結果,否則就是亂碼。
我用的scite,在options->open global options file中,code.page=65001,output.code.page=65001去除前面的#,就可以正確處理utf-8文字了。
嗯,windows就是麻煩,linux和mac一直想玩玩,但是單位無法上網,需要聯網的東西太費事了。
還有就是改寫為utf-8版後,計數和gbk版的不同了,gbk版的,和原文的計數一致,utf-8版的,一是計數多了,二是很多後面的也提到了前面,不知道為什麼,也許是gbk->utf-8轉換的時候,一些文字出現問題了吧。
#coding: utf-8
require "iconv"
num1 = 2 #分詞長度
num2 =500 #顯示大於多少的記錄
def splitword(s,l) #分詞,s是字串,l是字元分詞長度
lt = s.length
k = array.new
0.upto(lt-l) do |i|
k<10 } #去除大於10個字的語句
column.each do |col|
splitword(col,num1).each #把陣列內容進行計數為hash
h.delete_if # 從大到小排序
y.each_index # = #" }
puts "執行時間是:"<<(time.now-t).to_s<<"秒"
關於排序 ruby版練手
冒泡 選擇排序 快排兩種寫法,第一種用ruby的partition,簡短,第二種為常規快排寫法 arr1 4,6,2,7,1,3,8,9,5,0 arr2 8,12,4,14,2,6,16,18,10,20 arr3 8,12,4,14,2,6,16,18,10,20 arr4 8,12,4,14,...
Ruby的優雅(C 版)
相比於c ruby顯得灰常的優雅。設計上的 1 不需要引用必須依賴的包 c 的using system,在ruby的世界裡是不存在的,沒有必要反覆強調這些規則。2 非核心依賴包不需要重複引用 如果有2個類a和b,都依賴於c,c 必須在a和b中都宣告引用c。若是ruby,只需要在a或者b中宣告一次即可...
Ruby原始碼分析
struct rbasic struct robject struct rclass 以前研究過jvm,再看看動態語言原理都差不多。和jvm一樣,其中存著兩個必須的東西,變數表 iv tbl 和方法表 m tbl 這裡的變數表應該是只包含類變數 我不確定 super表示父類。其中為什麼要包含乙個變數...