20200917 2 詞頻統計 已更新附加題!

2022-05-16 19:51:46 字數 3000 閱讀 2602

此作業的要求參見[

codding專案位址

github位址 

詞頻統計 spec

功能實現

首先要寫乙個詞頻統計功能,方便進行多次呼叫,詞頻統計功能關鍵點主要是去除多餘字元,將單詞改為小寫,使用合適的資料結構(這裡使用hashtable)統計和排序。

hashtable 乙個雜湊表,可以快速進行插入查詢刪除操作,但是不能進行排序,需要改成普通陣列排序。

public static void countwords(string text)//統計單詞功能

else

}outputinfo(ht);

}public static void outputinfo(hashtable ht)//輸出資訊

}

其次寫出根據題目要求寫出分流操作 功能關鍵點:讀取命令列引數,讀取檔案內容。

static void main(string args)

else

else if (args.length > 1 && args[0] == "-s")//自定義檔案模式

}else if (args.length == 1 && args[0] != "-s")//已有檔案查詢模式

else

else if (file.exists(args[0] + ".txt"))

else scanfile(args[0]);}}

}}

最後補全各個功能。功能關鍵點:遍歷目錄列表,檔名查詢,控制台輸入,重定向輸入。

public static void scandir(string dir)//掃瞄目錄

}public static void scanfile(string file)//搜尋檔案

else if (file.exists(fullname1))

else continue;

}}public static void writetext()//文字輸入模式

public static void readconsoleinput()//標準輸入模式

else

else

}word = "";

}a = console.read();

}outputinfo(ht);

}

功能演示

功能1 小檔案輸入。

功能2 支援命令列輸入英文作品的檔名,請老五親自錄入。

功能3 支援命令列輸入儲存有英文作品檔案的目錄名,批量統計。

功能4 從控制台讀入英文單篇作品,

遇到的一些問題:

作業中給的測試例項中統計是不準確的。比如下面這個例子

測試例子中會出現多個英文單詞,最後導致統計數量偏少,應該加強特殊字元過濾。現在我的程式已經修復可以正常統計。

附加題

統計5字母單詞出現次數最多的十個  格式 wf  -n 單詞字母數量 -t 顯示出現的單詞數量 -s 檔案

統計6字母單詞出現次數最多的二十個

統計6字母單詞出現次數最多的一百個

關鍵點:自定義入口,判斷字串數量

自定義入口功能

int n = 0;

int t = 0;

string file = "";

for (int i = 0; i < args.length; i++)

if (args[i] == "-n")

if (args[i] == "-t")

if (args[i] == "-s")

}if (t == 0) t = 10;

if (n > 0 && t > 0 && file != "") else

判斷字串數量加一句s.length==ennum就可以了

psp

(8分)

(5分。雖然只有5分,但此題如果做錯,因為教師得不到你的**,所以會導致「功能實現」為負分。)

**要求在 coding.net 做版本控制。要求push&pull時使用git客戶端,不允許使用web頁面

專案位址

測試

「從控制台讀入英文單篇作品」中的英文作品,包括不限於[中的測試用例。大量英文原版(無版權,不是盜版)的測試用例在[可以找到。

PTA 詞頻統計

請編寫程式,對一段英文文字,統計其中所有不同單詞的個數,以及詞頻最大的前10 的單詞。所謂 單詞 是指由不超過80個單詞字元組成的連續字串,但長度超過15的單詞將只擷取保留前15個單詞字元。而合法的 單詞字元 為大小寫字母 數字和下劃線,其它字元均認為是單詞分隔符。輸入給出一段非空文字,最後以符號 ...

詞頻統計(上機)

include include include define error 1 define ok 0 const int word length 250 定義單個單詞最大長度 typedef int status 定義儲存單詞及其出現次數的結構體 typedef struct nodewordnod...

hamlet詞頻統計

part2 code 10.1calhamlet.py def gettext txt open hamlet.txt r read 將文字中的英文本母全部轉為小寫字母 txt txt.lower return txt hamlettxt gettext words hamlettxt.split ...