[ https://issues.apache.org/jira/browse/MAHOUT-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12806357#action_12806357 ]
Drew Farris commented on MAHOUT-242: ------------------------------------ bq. Hey Drew, I'm not much of a maven guy - what's the maven-foo you use to get this running? Jake, my mistake, I should have included updated docs when I updated the patch. I eliminated the code to read plain text files from a directory, so you would need to begin by producing a SequenceFile<Text,Text> (document id, document) as input. Robin's utility in mahout-examples, o.a.m.text.SequenceFilesFromDirectory can do this. Run the following from the 'examples' directory; {code} mvn -e exec:java -Dexec.mainClass="org.apache.mahout.text.SequenceFilesFromDirectory" -Dexec.args="--parent (...input directory..) --outputDir (..output directory..) --charset UTF-8" {code} Once you have the sequence file to use as input, run the following from the 'examples' directory as well. {code} mvn -e exec:java -Dexec.mainClass="org.apache.mahout.nlp.collocations.llr.CollocDriver" -Dexec.args="--input (..path-to-input..) --output (..path-to-output..) -w" {code} Once the driver class is run, the collocations will be in (output-directory)/colloc/part-00000 as plaintext. They can be sorted by LLR score using the same sort command I included in the previous comment above (I have a question about this below). FWIW, I need to re-submit the patch to clean up some of the pom changes to MAHOUT-215 were applied. A couple follow up questions while you're looking at this: Currently I just dump the results of the second pass to a file, not sorted by LLR score. I could sort by LLR by sending it through another pass with an identity mapper and a reducer but I suspect that's probably pretty inefficient. Is there a better way to sort the output of the second pass by LLR? If I only wanted to emit the top 1-10% of the collocs (user configurable), how would I tell the reducer to stop emitting results at a certain point (or is yet another pass needed to achieve something like this?) Would it be better to emit a sequencefile<LongWritable,Text> instead of a text file as the output from the final pass? > LLR Collocation Identifier > -------------------------- > > Key: MAHOUT-242 > URL: https://issues.apache.org/jira/browse/MAHOUT-242 > Project: Mahout > Issue Type: New Feature > Affects Versions: 0.3 > Reporter: Drew Farris > Assignee: Jake Mannix > Priority: Minor > Attachments: MAHOUT-242.patch, MAHOUT-242.patch, > mahout-colloc.tar.gz, mahout-colloc.tar.gz > > > Identifies interesting Collocations in text using ngrams scored via the > LogLikelihoodRatio calculation. > As discussed in: > * > http://www.lucidimagination.com/search/document/d051123800ab6ce7/collocations_in_mahout#26634d6364c2c0d2 > * > http://www.lucidimagination.com/search/document/b8d5bb0745eef6e8/n_grams_for_terms#f16fa54417697d8e > Current form is a tar of a maven project that depends on mahout. Build as > usual with 'mvn clean install', can be executed using: > {noformat} > mvn -e exec:java -Dexec.mainClass="org.apache.mahout.colloc.CollocDriver" > -Dexec.args="--input src/test/resources/article --colloc target/colloc > --output target/output -w" > {noformat} > Output will be placed in target/output and can be viewed nicely using: > {noformat} > sort -rn -k1 target/output/part-00000 > {noformat} > Includes rudimentary unit tests. Please review and comment. Needs more work > to get this into patch state and integrate with Robin's document vectorizer > work in MAHOUT-237 > Some basic TODO/FIXME's include: > * use mahout math's ObjectInt map implementation when available > * make the analyzer configurable > * better input validation + negative unit tests. > * more flexible ways to generate units of analysis (n-1)grams. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.