2014-09-11 72 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"))); 

希望这有助于。