2014-09-11 91 views
1

我想截斷語料庫中的所有標記,使其最大長度爲5個字符。有沒有辦法在MALLET中設置--token-regex導入選項來實現這一點?我目前使用導入文件的代碼是這樣的:在MALLET中截斷主題模型的標記

mallet-2.0.7/bin/mallet import-dir --input mallet-2.0.7/data/journals/ --output mallet-2.0.7/tmp/topic-input-journals.mallet --keep-sequence --remove-stopwords --stoplist-file mallet-2.0.7/stoplists/tr.txt --token-regex '\p{L}[\p{L}\p{P}]*\p{L}' 

如果這是不可能的木槌導入命令,我會很感激如何做相同的R.

+0

**「我想截斷所有標記,使其最大長度爲5個字符。」**上一句是您問題的底線。如果您刪除了其餘的措詞(以及刪除了一些標籤),您將有更高的回答您的問題的機會。歡迎來到SO。 – Sabuncu 2014-09-11 16:51:09

+0

感謝您的提示和歡迎。我編輯了這個問題。 – Jim 2014-09-12 10:26:47

+0

不客氣! – Sabuncu 2014-09-12 15:22:30

回答

0

建議是可以修改令牌正則表達式,以便它讀取使用該正則表達式的最大5個或n個字符的話:

\ b \ W {1,5} \ b

其中\b是一個字邊界,\w是一個字,而{1,5}定義了最小值(1)和最大值(5)。

您的命令行應該是:

mallet-2.0.7/bin/mallet import-dir --input mallet-2.0.7/data/journals/ --output mallet-2.0.7/tmp/topic-input-journals.mallet --keep-sequence --remove-stopwords --stoplist-file mallet-2.0.7/stoplists/tr.txt --token-regex '\b\w{1,5}\b' 

在Java:

pipeList.add(new CharSequence2TokenSequence(Pattern.compile("\\b\\w{1,5}\\b"))); 

希望這有助於。