我被賦予了在任意文檔(.txt)中查找唯一字以及他們的計數的任務。我也給了一本詞典,如果它在詞典中,那麼文檔中的一個詞就是有效的。這個任務是用附帶數據庫的mysql命令行來解決這個問題。沒有shell腳本,沒有編程。只是mysql命令。如何解析任意文檔到mysql
我爲字典創建了一個表,並將字典從dictionary.txt文件加載到LOAD DATA INFILE 'dictionary.txt' REPLACE INTO TABLE 'words' (word);
中,它工作得很好:每個記錄一個字。但是在文檔文件中,沒有真正的分隔符......我可以逐行讀取它,但是如何將每行中的單詞與正則表達式中的單詞進行比較?不是mysql會返回整個字段的內容而不是字段中的匹配單詞?
任何幫助將是偉大的。
編輯:SQLFiddle似乎現在正在運行。這是我到目前爲止已經完成:
CREATE TABLE dictionary (word VARCHAR(50) NOT NULL UNIQUE, freq INT DEFAULT 0);
LOAD DATA INFILE 'dictionary.txt' REPLACE INTO TABLE dictionary (word);
SELECT * FROM dictionary;
產量:
+------------------------------+------+
| word | freq |
+------------------------------+------+
| a | 0 |
| aa | 0 |
| aaa | 0 |
| aaas | 0 |
| aah | 0 |
| aal | 0 |
| aalii | 0 |
| aam | 0 |
| aani | 0 |
| aardvark | 0 |
| aardvarks | 0 |
| aardwolf | 0 |
| aardwolves | 0 |
| aargh | 0 |
| aarhus | 0 |
| aaron | 0 |
.
.
.
.
| zymotize | 0 |
| zymotoxic | 0 |
| zymurgy | 0 |
| zyrenian | 0 |
| zyrian | 0 |
| zyryan | 0 |
| zythem | 0 |
| zythia | 0 |
| zythum | 0 |
| zyzomys | 0 |
| zyzzogeton | 0 |
+------------------------------+------+
300248 rows in set (0.29 sec)
的dictionary.txt文件是每行只有一個字。 (可能包括頻率計數在這裏沒有必要)。
然後從那裏,我想採取一個任意的文本文件,例如http://www.usconstitution.net/const.txt,並將其讀入到一個mysql表'文檔',這樣我就可以執行搜索'查找文檔中的所有唯一字.word其中document.word在dictionary.word中。返回每個唯一的單詞和它的計數'。
我試圖讀LOAD DATA INFILE 'const.txt' REPLACE INTO TABLE document LINES TERMINATED BY ' ' (word);
文件,但我需要的分隔符是任何空格,而不僅僅是一個空格。例如,const.txt中的每一行都以\n
結尾,並且每行的最後一個單詞作爲單詞\ nanotherword放入表中。我現在不擔心以標點符號(單詞,單詞,單詞「單詞」等)結尾的單詞,因此如果它們出現在附有標點符號的表格中,就可以。
示例:SELECT * FROM DOCUMENT WHERE word REGEXP '\n';
收益率:
| http://www.gutenberg.net
This |
| Gutenberg-tm,
including |
| Literary
Archive |
| to
subscribe |
| eBooks.
|
+---------------------------------------------+
3356 rows in set (0.00 sec)
有沒有使用正則表達式分隔符爲LINES TERMINATED BY ''
條款的方式?理想情況下,我想使用\s
任何空白(\t
,\n
,等),以便
http://www.gutenberg.net
,This
,Gutenberg-tm,
, including
,Literary
,Archive
,to
,subscribe
,eBooks.
都是單個記錄。
請問你的文件是什麼樣子?請注意,mysql的正則表達式並不像PCRE或其他版本那樣強大,所以我看不到有效的用例... – HamZa
它看起來很有趣,但是您能否提供示例數據? (在這兩個文件中)與期望的結果? –
'空間'可以作爲分隔符嗎? – Strawberry