[ 
https://issues.apache.org/jira/browse/MAHOUT-588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Szymon Chojnacki updated MAHOUT-588:
------------------------------------

    Attachment: TamingDictionaryVectorizer.java
                TamingGramKeyGroupComparator.java
                TamingCollocMapper.java
                TamingCollocDriver.java
                TamingDictVect.java

TamingDictVect invokes TamingDictionaryVectorizer. Parameters are hard-coded. 
It is assumed that the emails were tokenized with TamingToken into TamingVEC.

TamingDictionaryVectorizer is a modified DictionaryVectorizer used in 
seq2sparse. Proposed implementation builds collocations only for words with a 
parametrized frequency, which requires one more preprocessing MR-job. This 
optimization is based on an observation that if we wish to restore n-grams with 
minCount>100, than each token in the n-gram must have count>100. In practice we 
can assume that the count of single tokens is few times higher than desired 
n-gram count.

The implementation differences are as follows:

/* Modified DictionaryVectorizer, now collocations are built only for tokens 
with defined minimum support. Most changes are enclosed by a commented 
informative statement. Following classes where also modified:
1. TamingCollocDriver
- modified CollocDriver
- changed CollocMapper to TamingCollocMapper
- added frequent tokens to DistributedCache

2. TamingCollocMapper
- modified CollocMapper
- in setup() lilmited dictionary is loaded
- only terms with all tokens in the dictionary are sent forward to reducers
- used terminology: term is e.g. "Coca cola" tokens are "coca" "cola"

3. TamingGramKeyGroupComparator
- unmodified GramKeyGroupComparator 
- just moved to current package to obtain visibility for TamingCollocDriver
*/

> Benchmark Mahout's clustering performance on EC2 and publish the results
> ------------------------------------------------------------------------
>
>                 Key: MAHOUT-588
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-588
>             Project: Mahout
>          Issue Type: Task
>            Reporter: Grant Ingersoll
>         Attachments: SequenceFilesFromMailArchives.java, 
> SequenceFilesFromMailArchives2.java, TamingAnalyzer.java, 
> TamingCollocDriver.java, TamingCollocMapper.java, TamingDictVect.java, 
> TamingDictionaryVectorizer.java, TamingGramKeyGroupComparator.java, 
> TamingTokenizer.java, Top1000Tokens_maybe_stopWords, Uncompress.java, 
> clusters_kMeans.txt, distcp_large_to_s3_failed.log, 
> seq2sparse_small_failed.log, seq2sparse_xlarge_ok.log
>
>
> For Taming Text, I've commissioned some benchmarking work on Mahout's 
> clustering algorithms.  I've asked the two doing the project to do all the 
> work in the open here.  The goal is to use a publicly reusable dataset (for 
> now, the ASF mail archives, assuming it is big enough) and run on EC2 and 
> make all resources available so others can reproduce/improve.
> I'd like to add the setup code to utils (although it could possibly be done 
> as a Vectorizer) and the publication of the results will be put up on the 
> Wiki as well as in the book.  This issue is to track the patches, etc.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to