Package org.apache.tika.langdetect.tika
Class LanguageProfilerBuilder
java.lang.Object
org.apache.tika.langdetect.tika.LanguageProfilerBuilder
This class runs a ngram analysis over submitted text, results might be used
for automatic language identification.
The similarity calculation is at experimental level. You have been warned.
Methods are provided to build new NGramProfiles profiles.
- Author:
- Sami Siren, Jerome Charron - http://frutch.free.fr/
-
Constructor Summary
ConstructorDescriptionConstructs a new ngram profile where minlen=3, maxlen=3LanguageProfilerBuilder
(String name, int minlen, int maxlen) Constructs a new ngram profile -
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(StringBuffer word) Adds ngrams from a single word to this profilevoid
analyze
(StringBuilder text) Analyzes a piece of textstatic LanguageProfilerBuilder
create
(String name, InputStream is, String encoding) Creates a new Language profile from (preferably quite large - 5-10k of lines) text filegetName()
float
getSimilarity
(LanguageProfilerBuilder another) Calculates a score how well NGramProfiles match each otherList<org.apache.tika.langdetect.tika.LanguageProfilerBuilder.NGramEntry>
Returns a sorted list of ngrams (sort done by 1.void
load
(InputStream is) Loads a ngram profile from an InputStream (assumes UTF-8 encoded content)static void
main method used for testing onlyprotected void
Normalizes the profile (calculates the ngrams frequencies)void
save
(OutputStream os) Writes NGramProfile content into OutputStream, content is outputted with UTF-8 encodingtoString()
-
Constructor Details
-
LanguageProfilerBuilder
Constructs a new ngram profile- Parameters:
name
- is the name of the profileminlen
- is the min length of ngram sequencesmaxlen
- is the max length of ngram sequences
-
LanguageProfilerBuilder
Constructs a new ngram profile where minlen=3, maxlen=3- Parameters:
name
- is a name of profile, usually two length string- Since:
- Tika 1.0
-
-
Method Details
-
create
public static LanguageProfilerBuilder create(String name, InputStream is, String encoding) throws TikaException Creates a new Language profile from (preferably quite large - 5-10k of lines) text file- Parameters:
name
- to be given for the profileis
- a stream to be readencoding
- is the encoding of stream- Throws:
TikaException
- if could not create a language profile
-
main
main method used for testing only- Parameters:
args
-
-
getName
- Returns:
- Returns the name.
-
add
Adds ngrams from a single word to this profile- Parameters:
word
- is the word to add
-
analyze
Analyzes a piece of text- Parameters:
text
- the text to be analyzed
-
normalize
protected void normalize()Normalizes the profile (calculates the ngrams frequencies) -
getSorted
Returns a sorted list of ngrams (sort done by 1. frequency 2. sequence)- Returns:
- sorted vector of ngrams
-
toString
-
getSimilarity
Calculates a score how well NGramProfiles match each other- Parameters:
another
- ngram profile to compare against- Returns:
- similarity 0=exact match
- Throws:
TikaException
- if could not calculate a score
-
load
Loads a ngram profile from an InputStream (assumes UTF-8 encoded content)- Parameters:
is
- the InputStream to read- Throws:
IOException
-
save
Writes NGramProfile content into OutputStream, content is outputted with UTF-8 encoding- Parameters:
os
- the Stream to output to- Throws:
IOException
-