宋詞分析改編版(ruby)

2021-09-01 01:35:54 字數 980 閱讀 1421

上一次我寫的[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表示父類。其中為什麼要包含乙個變數...