NgramContext.java revision 1adca93381d261a6070be2721dbf8b8abafbfe01
183c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi/* 283c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * Copyright (C) 2014 The Android Open Source Project 383c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * 483c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * Licensed under the Apache License, Version 2.0 (the "License"); 583c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * you may not use this file except in compliance with the License. 683c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * You may obtain a copy of the License at 783c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * 883c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * http://www.apache.org/licenses/LICENSE-2.0 983c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * 1083c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * Unless required by applicable law or agreed to in writing, software 1183c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * distributed under the License is distributed on an "AS IS" BASIS, 1283c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1383c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * See the License for the specific language governing permissions and 1483c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi * limitations under the License. 1583c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi */ 1683c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi 1783c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagipackage com.android.inputmethod.latin; 1883c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi 1917f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagiimport android.util.Log; 2017f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi 2117f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi// TODO: Support multiple previous words for n-gram. 2283c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagipublic class PrevWordsInfo { 231adca93381d261a6070be2721dbf8b8abafbfe01Keisuke Kuroyanagi public static final PrevWordsInfo BEGINNING_OF_SENTENCE = new PrevWordsInfo(); 241adca93381d261a6070be2721dbf8b8abafbfe01Keisuke Kuroyanagi 2583c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi // The previous word. May be null after resetting and before starting a new composing word, or 2683c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi // when there is no context like at the start of text for example. It can also be set to null 2783c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi // externally when the user enters a separator that does not let bigrams across, like a period 2883c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi // or a comma. 2983c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi public final String mPrevWord; 3083c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi 3117f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi // TODO: Have sentence separator. 3217f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi // Whether the current context is beginning of sentence or not. 3317f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi public final boolean mIsBeginningOfSentence; 3417f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi 3517f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi // Beginning of sentence. 3617f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi public PrevWordsInfo() { 371adca93381d261a6070be2721dbf8b8abafbfe01Keisuke Kuroyanagi mPrevWord = ""; 3817f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi mIsBeginningOfSentence = true; 3917f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi } 4017f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi 4183c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi public PrevWordsInfo(final String prevWord) { 4283c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi mPrevWord = prevWord; 4317f326b7458c2bde2569e283a96e703755485328Keisuke Kuroyanagi mIsBeginningOfSentence = false; 4483c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi } 451adca93381d261a6070be2721dbf8b8abafbfe01Keisuke Kuroyanagi 461adca93381d261a6070be2721dbf8b8abafbfe01Keisuke Kuroyanagi public boolean isValid() { 471adca93381d261a6070be2721dbf8b8abafbfe01Keisuke Kuroyanagi return mPrevWord != null; 481adca93381d261a6070be2721dbf8b8abafbfe01Keisuke Kuroyanagi } 4983c40a2301a0b5a42a75eecada48e7887a7c940eKeisuke Kuroyanagi} 50