Factorie

FACTORIE is a toolkit for deployable probabilistic modeling, implemented as a software library in Scala. It provides its users with a succinct language for creating relational factor graphs, estimating parameters and performing inference.

License

License

GroupId

GroupId

cc.factorie
ArtifactId

ArtifactId

factorie_2.11
Last Version

Last Version

1.2
Release Date

Release Date

Type

Type

jar
Description

Description

Factorie
FACTORIE is a toolkit for deployable probabilistic modeling, implemented as a software library in Scala. It provides its users with a succinct language for creating relational factor graphs, estimating parameters and performing inference.
Project URL

Project URL

http://factorie.cs.umass.edu
Project Organization

Project Organization

University of Massachusetts, Amherst
Source Code Management

Source Code Management

https://github.com/factorie/factorie

Download factorie_2.11

How to add to project

<!-- https://jarcasting.com/artifacts/cc.factorie/factorie_2.11/ -->
<dependency>
    <groupId>cc.factorie</groupId>
    <artifactId>factorie_2.11</artifactId>
    <version>1.2</version>
</dependency>
// https://jarcasting.com/artifacts/cc.factorie/factorie_2.11/
implementation 'cc.factorie:factorie_2.11:1.2'
// https://jarcasting.com/artifacts/cc.factorie/factorie_2.11/
implementation ("cc.factorie:factorie_2.11:1.2")
'cc.factorie:factorie_2.11:jar:1.2'
<dependency org="cc.factorie" name="factorie_2.11" rev="1.2">
  <artifact name="factorie_2.11" type="jar" />
</dependency>
@Grapes(
@Grab(group='cc.factorie', module='factorie_2.11', version='1.2')
)
libraryDependencies += "cc.factorie" % "factorie_2.11" % "1.2"
[cc.factorie/factorie_2.11 "1.2"]

Dependencies

compile (11)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.11.7
org.scala-lang : scala-compiler jar 2.11.7
org.apache.commons : commons-compress jar 1.8
commons-lang : commons-lang jar 2.6
org.xerial.snappy : snappy-java jar 1.1.1.3
info.bliki.wiki : bliki-core jar 3.0.19
org.mongodb : mongo-java-driver jar 2.12.3
org.json4s : json4s-core_2.11 jar 3.2.9
org.json4s : json4s-jackson_2.11 jar 3.2.9
org.jblas : jblas jar 1.2.3
com.google.guava : guava jar 12.0

test (4)

Group / Artifact Type Version
junit : junit jar 4.10
org.scalatest : scalatest_2.11 jar 2.2.5
com.github.fakemongo : fongo jar 1.5.10
org.slf4j : slf4j-log4j12 jar 1.7.7

Project Modules

There are no modules declared in this project.

FACTORIE

Build Status

This directory contains the source of FACTORIE, a toolkit for probabilistic modeling based on imperatively-defined factor graphs. More information, see the FACTORIE webpage.

Installation

Installation relies on Maven, version 3. If you don't already have maven, install it from http://maven.apache.org/download.html. Alternatively, you can use sbt as outlined below (a script for running sbt comes bundled with Factorie).

To compile type

$ mvn compile

To accomplish the same with sbt, type

$ ./sbt compile

You might need additional memory. If so, for sbt type

export SBT_OPTS="$SBT_OPTS -Xmx1g"

and for Maven type:

export MAVEN_OPTS="$MAVEN_OPTS -Xmx1g -XX:MaxPermSize=128m"

To create a self-contained .jar, that contains FACTORIE plus all its dependencies, including the Scala runtime, type

$ mvn -Dmaven.test.skip=true package -Pjar-with-dependencies

To accomplish the same with sbt, type

$ ./sbt assembly

To create a similar self-contained .jar that also contains all resources needed for NLP (including our lexicons and pre-trained model parameters), type

$ mvn -Dmaven.test.skip=true package -Pnlp-jar-with-dependencies

To accomplish the same with sbt, type

$ ./sbt -J-Xmx2G with-nlp-resources:assembly

Try out a simple example

To get an idea what a simple FACTORIE program might look like, open one of the class files in the tutorial package

$ ls src/main/scala/cc/factorie/tutorial

To run one of these examples using maven type

$ mvn scala:run -DmainClass=cc.factorie.tutorial.Grid

Try out implemented NLP models

Then you can run some FACTORIE tools from the command-line. For example, you can run many natural language processing tools.

$ bin/fac nlp --wsj-forward-pos --conll-chain-ner

will launch an NLP server that will perform part-of-speech tagging and named entity recognition in its input. The server listens for text on a socket, and spawns a parallel document processor on each request. To feed it input, type in a separate shell

$ echo "I told Mr. Smith to take a job at IBM in Raleigh." | nc localhost 3228

You can also run a latent Dirichlet allocation (LDA) topic model. Assume that "mytextdir" is a directory name containing many plain text documents each in its own file. Then typing

$ bin/fac lda --read-dirs mytextdir --num-topics 20 --num-iterations 100

will run 100 iterations of a sparse collapsed Gibbs sampling on all the documents, and print out the results every 10 iterations. FACTORIE's LDA implementation is faster than MALLET's.

You can also train a document classifier. Assume that "sportsdir" and "politicsdir" are each directories that contain plan text files in the categories sports and politics. Typing

$ bin/fac classify --read-text-dirs sportsdir,politicsdir --write-classifier mymodel.factorie

will train a log-linear by maximum likelihood (MaxEnt) and save it in the file "mymodel.factorie".

The above are simply a few simple command-line options. Internally the FACTORIE library contains extensive and general facilities for factor graphs: data representation, model structure, inference, learning.

Versions

Version
1.2
1.1.1
1.1