net.trialpc.sticktools.model
クラス SmoothedModel

java.lang.Object
  上位を拡張 net.trialpc.sticktools.model.AbstractLangModel
      上位を拡張 net.trialpc.sticktools.model.SmoothedModel
すべての実装されたインタフェース:
LangModel

public class SmoothedModel
extends AbstractLangModel

2 つの言語モデルをスムージングにより 1 つの言語モデルとして扱えるようにするためのクラスです。

作成者:
tetsu
関連項目:
MultiSmoothedModel

コンストラクタの概要
SmoothedModel(LangModel base, LangModel bg, Smooth s)
          スムージングパラメータを 0 として、スムージングを行った言語モデルのインスタンスを生成します。
SmoothedModel(LangModel base, LangModel bg, Smooth s, float param)
          スムージングを行う言語モデルのインスタンスを生成します。
 
メソッドの概要
 boolean equals(java.lang.Object o)
           
 LangModel getBackgroundModel()
          背景分布となる言語モデルを返します。
 LangModel getBaseModel()
          基準となる言語モデルを返します。
 java.util.Set<java.lang.String> getVocabulary()
          この言語モデルの語彙を返します。
 int hashCode()
           
 boolean isModifiable()
          言語モデルに含まれる語を変更可能かどうかを返します。
 int numOfTerms()
          このメソッドは実装されていません。
 int numOfVocabulary()
          この言語モデルに含まれる語の種類数(語彙数)を返します。
 int termCount(java.lang.String term)
          このメソッドは実装されていません。
 float termFrequency(java.lang.String term)
          語 term の相対頻度を返します。
 java.lang.String toString()
          スムージングされた言語モデルの文字列表現を返します。
 
クラス net.trialpc.sticktools.model.AbstractLangModel から継承されたメソッド
containsTerm, containsTerms, contaisQueries
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

SmoothedModel

public SmoothedModel(LangModel base,
                     LangModel bg,
                     Smooth s)
スムージングパラメータを 0 として、スムージングを行った言語モデルのインスタンスを生成します。

パラメータ:
base - 基準となる言語モデル
bg - base の背景分布となる言語モデル
s - スムージングの手法

SmoothedModel

public SmoothedModel(LangModel base,
                     LangModel bg,
                     Smooth s,
                     float param)
スムージングを行う言語モデルのインスタンスを生成します。 スムージングの手法によってはパラメータの必要ないものがあります。

パラメータ:
base - 基準となる言語モデル
bg - base の背景分布となる言語モデル
s - スムージングの手法
param - スムージングパラメータ
メソッドの詳細

getBaseModel

public LangModel getBaseModel()
基準となる言語モデルを返します。

戻り値:
スムージングの基準となる言語モデル

getBackgroundModel

public LangModel getBackgroundModel()
背景分布となる言語モデルを返します。

戻り値:
背景分布となる言語モデル

isModifiable

public boolean isModifiable()
クラス AbstractLangModel の記述:

言語モデルに含まれる語を変更可能かどうかを返します。

変更可能とは、語の追加や削除の処理が含まれます。 変更可能でない場合は、LangModel で定義されているメソッドは、 引数に応じて常に一定の値、またはインスタンスを返します。

この実装では、常に true を返します。 具象クラスとして変更不可能な言語モデルクラスを作成する場合は、 必ずオーバーライドするようにしてください。

定義:
インタフェース LangModel 内の isModifiable
オーバーライド:
クラス AbstractLangModel 内の isModifiable
戻り値:
基準となる言語モデルと、背景分布となる言語モデルのどちらか、 もしくは両方が変更可能なら true

numOfTerms

public int numOfTerms()

このメソッドは実装されていません。 呼び出すと UnsupportedOperationException をスローします。

スムージングを行った言語モデルでは、厳密に語彙の延べ語数を定義することはできません。 述べ語数を取得する必要がある場合は、getBaseModel().numOfTerms() か、getBackgroundModel().numOfTerms() とすることで取得するようにしてください。

戻り値:
語彙の延べ語数
関連項目:
getBaseModel(), getBackgroundModel()

termCount

public int termCount(java.lang.String term)

このメソッドは実装されていません。 呼び出すと UnsupportedOperationException をスローします。

スムージングを行った言語モデルでは、厳密に語の出現回数(頻度)を定義することはできません。 語の出現回数を取得する必要がある場合は、getBaseModel().termCount(String) か、getBackgroundModel().termCount(String) とすることで取得するようにしてください。

パラメータ:
term - 語
戻り値:
語の出現回数
関連項目:
getBaseModel(), getBackgroundModel()

termFrequency

public float termFrequency(java.lang.String term)
term の相対頻度を返します。 ただし、ここで返される値は、スムージングされたモデルから算出されます。

定義:
インタフェース LangModel 内の termFrequency
オーバーライド:
クラス AbstractLangModel 内の termFrequency
パラメータ:
term - 語(通常は単語と同義)
戻り値:
term の相対頻度
例外:
java.lang.NullPointerException - スムージングされたモデルが null を許可しない場合。
関連項目:
LangModel.numOfTerms(), LangModel.termCount(String)

getVocabulary

public java.util.Set<java.lang.String> getVocabulary()
インタフェース LangModel の記述:
この言語モデルの語彙を返します。 言語モデルに語彙が 1 つも存在しない場合は、空の Set が返されます。

戻り値:
語彙を示すセット

numOfVocabulary

public int numOfVocabulary()
クラス AbstractLangModel の記述:
この言語モデルに含まれる語の種類数(語彙数)を返します。 語の種類数は、語彙の異なり語数とも呼ばれます。 通常、このメソッドで返される値は 0 以上です。

この実装は、getVocabulary() メソッドに依存しています。

定義:
インタフェース LangModel 内の numOfVocabulary
オーバーライド:
クラス AbstractLangModel 内の numOfVocabulary
戻り値:
語の種類数
関連項目:
LangModel.getVocabulary()

hashCode

public int hashCode()
オーバーライド:
クラス java.lang.Object 内の hashCode

equals

public boolean equals(java.lang.Object o)
オーバーライド:
クラス java.lang.Object 内の equals

toString

public java.lang.String toString()
スムージングされた言語モデルの文字列表現を返します。

オーバーライド:
クラス AbstractLangModel 内の toString
戻り値:
文字列表現
関連項目:
LangModel.getVocabulary(), LangModel.termCount(String)