Subject: Re: input method

From: "(Guo Jin)" <[email-masked]>
Date: Tue, 22 Sep 1992 22:56:13 SST

> > Dear reader
> The so-called Pinyin input-method for Chinese Script T/7 drives me to
> desperation. Does  anyone know a better method similar to Ed Lai's cihui or
> is anyone working on it?
> Informations would be very much appreciated.
> Brigitte Koella
>

Chinese input method is alway a hot topic on this forum, and
the most popular ones, I think, are PinYin-based.  Of course
the Pinyin-and-selection loop is of 'desperate', and maybe 'cihui'-like
ones are more or less the same.  Thus, a dozen of developers truned to
so-called 'continuous input' which tries to convert or trancript
a string of pinyin (pinyin phrase or sentence) into a string of hanzi
(Chinese graphic character phrase or sentence).  'Excellent' examples
are:  TIANMA (Canada), InSun (PRC), PJS (PRC & Singapore), XLBR (US),
cWnn (Japan) and THED (PRC).   (Most of them are commecial software with
a special hardcard for copyright protection)

The problem is that:  no convertion or transcription method can achieve
100% accuracy.  Even worse, all these sentence-based input methods are
still employed in an isolate-character-input style and thus hard to use.
(Someone has already complained the XIN TIANMA in this forum.)

Does anyone interested in shaping out an user-freindly sentence-based input
routine (or style, approach, usage, standard) under the assumption of the
 existance
of a pinyin-to-hanzi convertion subroutine with an accuracy about 95% ?
(If needed, I will contribute such a subroutine late this year or early next
 year.)
Again, if we already have such a convertion subroutine in hand, HOW TO USE IT??

I am sure that such a discussion will both encourage the Chinese software
developers to explore and/or improve their products and civilize our
end-users the existance and goodness of such continuous input approaches.
A reference fact is : to input Chinese characters (kanji) into computers,
Japanese people have used kana (Japanese pinyin ?) to
Kanji (hanzi) conversion method for decades.

GUO Jin, ISS, NUS, Singapore.

---

From: Ed Lai <[email-masked]>
Date: Tue, 22 Sep 1992 18:10:13 -0700

>a special hardcard for copyright protection)

This is a very strange view of how good an input method is. What is called
continous input is called inline input in Mac system 7.1, whereas the Mac
system 6 input is called bottomline input. Both are possible under system
7.1. But I would hardly judge an input method to be better solely because
it is inline. In fact I consider inline input to be "Batch" mode whereas
bottom line input could be (but not necessary) "Interactive" mode.

The fact it is not a real sentenced-based input unless the syntax and
the context of the whole sentence is used to help the conversion. And
the input methods mentioned above, the ones I know are certainly not
really sentenced based, but are really single phrase conversion where
the conversion are delayed until it batches up.

As for the question of Cihui under ChineseTalk II on the Mac, I have no
plan to do it since I do not even have the information on how to write
an input method in ChineseTalk II. However the plan is to port Cihui to
System 7.1

/* Disclaimer: All statments and opinions expressed are my own */
/* Edmund K. Lai                                               */
/* Apple Computer, MS37-UP                                     */
/* 20525 Mariani Ave,                                          */
/* Cupertino, CA 95014                                         */
/* (408)974-6272                                               */
zW@h9cOi

---

From: "(Guo Jin)" <[email-masked]>
Date: Thu, 24 Sep 1992 14:36:59 SST

Two days ago, following a question on "input method", I asked: How to use
"continuous input". ([email-masked], CCNET-L, Sept. 22, 92)

Instantly, knowledgeable responses come up.  Ed. Lai, the contributor of
the familiar "cihui" package, felt, "This is a very strange view of how
good an input method is." ([email-masked], CCNET-L, Sept. 22, 92)  Y. Jiang,
one of the list owners of the CCNET-L, asked me "What do you mean ..."
([email-masked], personal comm., Sept. 22, 92).  Agreeing with A.
Boretz's idea of "There hasn't been much discussion on the net of this
particular area" ([email-masked], CCNET-L, Sept. 22, 92), I am
aware of the necessity of further clarifying my question.

Isolated Input
=============

Almost all Chinese character input methods we are currently in use, in my
previous term, are "isolated" ones.  No matter "character-based" or "word-
based", no matter "shape based" (e.g., WBZX, CangJi) or "sound based (e.g.,
pinyin, BoPoMoFo), no matter "explicitly-coded" (e.g., WBZX) or
"implicitly-coded" (e.g., LianXiang), and no matter "pure" or a "hybrid" of
some of the above, they possess a common characteristics: the current
entering of a character or a word is INDEPENDENT of both the characters or
words already entered (no matter they are "correct or wrong") and the
characters or words to be entered.  Moreover, the character or word is a
single unit that leads to only two possible results of your input: correct
or wrong, succeed or fail.  That is, a character or a word is "isolatedly"
inputted.  Of course you can postpone the correction of an input error (the
so-called batch mode).  You, however, have to agree that you have already
failed to input the character or word due to your mistakes such as the
forgetting of the special character code or whatsoever.

Continuous Input
================

In contrast, in "continuous" input methods, until the end of the entering
of a "large" block (a phrase, a sentence, a paragraph, or even a whole
book!) of codes (pinyin or whatever you like), you may have no chance to
know confidently even the first Chinese character you really entered.
Moreover, even if your code-inputs are 100% accurate, it is guaranteed that
you may NOT make 100% perfect Chinese-character-inputs.  In other words,
the Chinese character you are entering is both depending on its previous
character(s) and on its following one(s).

The core ...
============

According to the above description, the core for continuous input is NOT
"sentence based" but "having an imperfect batch conversion process behind".
Sentence-based input, of course, is one kind of continuous input.  It is
also very clear that there is no reason to convince our end-user the
superior of continuous input approach over isolated ones.  In fact, we even
do NOT know an approapriate way to use the so called continuous input
approach, not to mention its advantages.

My Question
===========

"I am already tired to read your wordy jargons, what do you really want to
convey?!"  My objective, in this first stage, is only to raise a "simple"
question:  HOW TO USE CONTINUOUS INPUT METHOD???

Why ...
=======

This is a meaningful yet crucial question.  Intuitively, at least in my
mind, the continuous input sounds much better than isolated input.  For
instance, with continuous pinyin input, you may pay no attention to the
tedious homonym problem.  The current application practice, however, is the
opposite.  In spite of the existence of so many pro-continuous input
packages in the market and/or on the network, how many users really employ
them as their prime Chinese character input means?!  Why? We even do not
know an appropriate way to do continuous input, not to mention to take
their full advantages.

To the developers end ...
=========================

To the developers end, in my opinion, little serious and/or extensive R&D
has been made on the usage of continuous input.  To certain extent, the
attachment of a conversion input routine is only a marketing strategy:
attracting unaware customers (sorry!).  In some products, the conversion
input routine is simply embedded totally in the same way as an isolated
coding routine, not to mention the far from satisfactory conversion routine
itself.

To the end-users end ...
========================

To the end-users end, the confusion of isolated and continuous input
approaches block them to take full advantages of the goodness some products
already provided.  For example, early this year, a netter wrote:  "I have
had a chance to use ... and frankly I am disappointed. ... I found that
that 'self converting pinyin->hanzi' not to be all it is cracked up to be.
... when it didn't work you had to move the cursor back and select change,
then select the new character and then move forward again, so even though
you don't have to select every word, you sill have to read what you type as
you type it, and when you do have to make a change it is not all that
quick."  Clearly, he used the continuous input routine in the same way as
he uses an isolated input routine and thus did not capture its
conveniences.

My Imagination
==============

"What kind of answer you are looking for?"  An imagination of the operation
procedure of using a continuous input routine to type in an article.  The
one now in my mind is:  first, blindly key in the article in pinyin.  Then,
double-click a mouse to switch on the batch conversion process.  When the
conversion of a sentence finished, two accompanied subroutines are
automatically triggered.  One is a Chinese spelling checker and/or grammar
watchdog that will highlight any possible input/conversion error. (Ref.:
it is informed that such a checker will be in market this December in
Beijing.  Estimated price: RMB 2,000)  The other is a Chinese speech
synthesizer witch will take the results of the linguistic analysis of the
sentence from the converter and read the sentence phrase by phrase with
clear intonation. (Ref.:  tens of Chinese speech synthesizers have already
in market for at least a decade.  Price ranges from as low as RMB 300 to
far more than RMB 10,000, depending on varieties of quality features and
configurations.)  The idea is, if the converter makes a wrong conversion,
in certain cases, the linguistic analysis of this sentence is also improper
that naturally leads the speech synthesizer produces a strange reading
which in turn let you easily capture the bug.  What ever means with which
you find the error, you may simply move the mouse arrow to the position of
the wrong Chinese character and double-click the mouse button to trigger a
small window of all possible candidates (homonyms), then click the correct
Chinese character to replace the wrong one and the whole process goes on.
It is better than any existing input methods, isn't it?!

Brainstorm
==========

Of course, shaping a new input style is never an easy job.  Too many
factors have to be taken into account.  The one I imaged above is
technically feasible (even not too difficult for a Chinese software
developer to implement) but may not be economically affordable.  Anyway, if
we can make clear our desire and/or demand, I am sure that, dozens, if not
hundreds, of experts and amateurs are already there waiting for developing
and/or integrating such a product.  What kind of continuous input product
we are really looking for ?!  Brainstorm!

[email-masked]

---

From: Yuan Jiang <[email-masked]>
Date: Thu, 24 Sep 1992 18:15:48 EDT

I'm very glad input method is taking the stage again.  I believe
Chinese input still remains the biggest obstical in Chinese systems.
All the other problems will be solved given enough time and labor
poured in.  But Chinese input needs innovation and revolution.

I may agree with many points GuoJin raises.  However, many of terms
he uses are ambiguous.  (That's why I asked what he meant when saying
"continuous input.")  I'd like to stress the following.
1) Zi (character) is very often mistakenly translated into "word."
2) Ci is closer than Zi to "word" in English.
3) A Ci is usually composed by 2 ZIs.

Input methods can be devided into 3 most important categories.
A. Pen based (stroke recognition) or character recognition based.
  Stroke recognition and character recognition are still not
  mature technologies.  On one hand Chinese characters have
  simple regular strokes and Chinese might be easy, on the other
  hand they average have more strokes than Latin aphabets.
B. Speach based.  It has the same and more technical problems
  than phonetic keyboard based methods.
C. Keyboard based.
 a) Map Chinese character set <-> key stroke sequences
    Canji, 5 Stroke and more many more methods have invented on
    this line.  It is basically mapping written Chinese into
    a "foreign language."  If Chinese can all learn such a
    "foreign language," they could have learned English to make
    life easier.  I believe this is a dead end.
 b) Phonetic input methods.  PinYin, bopomofo, etc.

A good method should be judged by 2 criteria.
1) 1<->1 mapping of an input (sequence) and Chinese character set.
2) Easy to learn, convenient, price, ..., in a word, User Friendly.

Method A meets 1) very well, but has many technical problems
remain to be sovled.  It may take years.  Method C.a does not
meet 2).

Method C.b may be the most promising one in the near future.
It started from inputing PinYin (or Bopomofo) -> Zi (character).
This method fails criterion 1) because of homonyms in Chinese.
It fails 1) almost 100%.  This might be close to the "isolated input"
method mentioned by Guojin.
TianMa started PinYin sequence -> Ci and phases.  It meets 1),
say 60%-95% (any one has the statistics?).  This might be the
beginning of the "continuous input."

Again, the core os the issue is not "isolated input" versus
"continuous input," or "interactive" versus "batch mode," it's
rather meeting the 2 criteria.  TianMa nad XLBR have basically
the same input method.  But XLBR is more popular because it's
more user friendly -- much cheaper and very good page/text formating.

Where should we go from PinYin sequence -> Ci and phases to
remove the remaining 40%-5% ambiguity?  I imagin 2 ways:
1) dynamic change of PinYin sequence -> Ci and phases mapping
  library to adopt the writing style of the user;
2) make PinYin sequence -> Ci and phases mapping more context
  sensitive.  This may be closer to Guojin's continuous input.
  XLBR makes the most frequently used Zi and Ci as the defualt
  ones when homonym occurs, making use of statistics.  It's
  still not context sensitive.
Any more suggestions?  Let's not simply brushing off other guys'
ideas.  Brainstorming is good for everyone.  I'll try to pursuaed
Yan YongXin to buy an MCI MAIL so that he can get onto the net.

Comments to Guojin's
>An imagination of the operation
>first, blindly key in the article in pinyin.  Then,
Pressing space bar or any punctuation is a more natural way to trigger
the convertion.  TianMa and XLBR all adopt this.

>automatically triggered.  One is a Chinese spelling checker and/or grammar

Yes, PinYin checking (spelling check) is another thing need to be added.
The software should be Ci, phrase and context sensitive when
doing the mapping (converting).

---

From: "(Guo Jin)" <[email-masked]>
Date: Fri, 25 Sep 1992 14:08:07 SST

This is my third mail on Chinese input method.  Again, it is to
clarify some "ambiguous" in my previous mail :)

character/word
==============

In my mind,

	(Chinese) character == zi4
	(Chinese) word == ci2

I do understand the existence of so much ambiguous on the term
"word".  In fact, until this century, no one differentiates zi/ci.
The modern concept of "word (ci)" was first discussed by Ma3
Jian4Zhong1 in 1898 in his famous book "ma3 shi4 wen2 tong1" ("Ma's
grammar"? The first Chinese grammar book).  Even today, so many word
dictionaries are still titled "(da4) zi4dian3" in Taiwan, Hong Kong
and other places.  So many people accept

	zi4 == (Chinese) character
	    == (Chinese) word
	ci2 == (Chinese) phrase

However, before an "operational" definition of the term "word" (read:
with this definition, given a "zi4chuan4", i.e., a Chinese character
string, anyone can make sure if it is a "word".) being widely
accepted, no one can rule out any of the translations above.
Example, "mei3 li4 jian1 he2 zhong4 guo2 (United states of America)".
Word or phrase? How many words in it?  Endless argues!

Discussion:  Does there exist the so called "word" in Chinese
language or just a "cheating" from western language?!

One-to-one mapping
==================

Then, why do I always use the term "Chinese character or word (read:
zi or ci)"?  No matter character (zi) input or word (ci) input, both
are in the ward of "one-to-one mapping".  In these two input
paradigms, an identical ID code is always tried to be marked on the
unit (zi/ci).  When you key in the correct ID code, you are
guaranteed you will get the zi/ci you intend to get.  If the computer
sends you a strange zi/ci, that is yours fail: you typed a wrong ID
code!  This is one aspect the term "isolated input" implied.
Continuous input?  No one-to-one mapping!

Discussion:  Why one-to-one mapping?!

Touch input
===========

Classified on the type of input devices, Y. Jiang listed yesterday 3
Chinese character input categories:  pen-based, phone- (speech)
based, and keyboard-based.  As a reference, the fourth category, in
my term, pointing-device-based, or touch input, is added here.  Its
three popular sub-categories are:

(1)  mouse-based

"Kai3Te4 Ren2Ren2 Xi4Tong3 (KT everyone system?)", a Chinese system
developed by Dr. Hou in Xi'an JiaoTong Univ. and popular in mainland
China, supports "keyboard-less" Chinese character input.  To input a
Chinese character, the user, using a mouse on a computer screen,
first selects the first stroke or the radical of the character from a
stroke or radical window, then, after the emerging of the window with
all Chinese characters of the same first stroke or radical (even with
some symbols with the 'similar' first stroke or radical.  Wa!
Treating western symbols as they are derived from Chinese characters!),
selects the exact character.  In a word, a way similar to peak up a
character from a dictionary.  A similar package is also developed in
Singapore on UNIX stations.

Still keyboard input?  Yes, ONE key keyboard!

(2)  screen-based

Instead of the nimble mouse, using your finger to point on the
special sensitive screen.

(3)  plate-based

Instead of the harmful screen, using a large array of Chinese-
character-marked touch buttons.

Still keyboard input?  Yes, ONE key a character!

Discussion:  Possible classifications other than device-based?

I will go on the discussion of Chinese character input later.  Thanx.
[email-masked]

---

From: Yuan Jiang <[email-masked]>
Date: Fri, 25 Sep 1992 17:08:47 EDT

The Byte articles says that the most advanced Japanese input
methods are using context sensitive schemes.  His $450 Japanese
Sharp wordproessor guess right 80% of the time.  Well, I don't
think this is a high percentage.  It will frustrate me.

---

From: Ed Lai <[email-masked]>
Date: Wed, 7 Apr 1993 11:43:40 -0700

This is an old discussion, but I was not around at that time.

Haizi Xu wrote

>Why can't we accomplish the same procedure in a more
>convenient way: you input the PinYin of your word but
>only find the machine displays a "wrong" word; you can
>simply move the cursor back to the word; the machine
>prompt all available words for the same PinYin; if the
>word you want is in the list, simply select the word
>and the machine will replace the "wrong" word with the
>right word for you; if the word is not in the list,
>press a function key, say F2 to add it to the
>dictionary;

Cihui on the Mac works likes this to some extent. When the
word/phrase choices are shown, all the possible first
characters are also shown. If the phrase is not in the
dictionary then you have to choose it from the characters,
followed by the choice of the second character in the
phrase etc, but after that the phrase would be entered into
the dictionary automatically (if that is your preference
setting).

Yuntao wrote

>It's said "If we can dream it, we can do it." Here is my dream:
> ........
>When I use Pinyin, I hope it is smart. So smart that I don't have
>to type in all the vowels. Instead, all I have to do is to type the
>first consonant of each character in a word, "CiHui". For example,
>if I want to input "Zhong1 Wen2", (chinese), I would type "zhw", and
>all the corresponding words that falls in this category will prompt
>up, then I will type the number of the one I want. If there two many
>choices, I would continue to type in the vowel of the last character
>in the word without having to start over again. In the above example,
>I will continue to type "e", ("zhwe", four key stokes now) or further
>still, "en" ("zhwen"). Hopefully, this will illiminate most choices,
>most probably leaving only one or two. If the character has no consonant,
>one would just type the first letter of the vowel, e.g., "An1 Quan2",
>one >would type "aq", or "aqu", "aqua"......
>If I could not find the word I wanted, I would go back to normal pinyin.

Again Cihui already works like this to some extent.

for zhong1wen2, all of the following are possible

zhong1wen2
zhongwen         ignore the tone
zhong1wen       ingore the tone in wen
zhongwen2       ignore the tone in zhong
z.w.      first character start with z, second start with w
zh.w.    first character start with zh, second start with w
zh.we.  first character start with zh, second start with we
z..        first character start with z, second can start with anything.

Of course they don't have the same result because other pharse other
than zhong1wen2 fits the critera z.w.

>choices, I would continue to type in the vowel of the last character
>in the word without having to start over again. In the above example,
>I will continue to type "e", ("zhwe", four key stokes now) or further
>still, "en" ("zhwen"). Hopefully, this will illiminate most choices,

Again Cihui works like this, before you hit the conversion key,
Cihui assumes that you have not finished typing, but nonetheless
it display the options based on what you have typed in so far.

So you type z
   Cihui displayes all characters and phrases that starts with z
You type h next
   Cihui displays all characters and phrases that start with zh
You type . next
   Cihui displays all characters and phrases that start with zh
You type w next
   Cihui displays all phrases where first char start with zh
    and second char start with w
You type e next
   Cihui displays all phrases where first char start with zh
    and second char start with we
You type n next
   Cihui displays all phrases where first char start with zh
    and second char start with wen

You can stop the process and pick the phrase anytime you
have type enough to get the phrase you want in the choice
box.

>one should be able to input a word with the average
>of three or four key strokes. Which
>is even faster than Wu5 Bi3 Zi4 Xing2.

If one is willing to use ShuangPin, then it takes an
average of 2 stroke (3 to include tone) in each
character even before abbreviation is used.

I think what this proves is that we spend too much effort
on inventing new input method and not enough on
implementing input method to its full potential. Cihui is
in the right direction, but a lot more can be done. And
CangJie is an example of an input method where there
is almost zero effort to implement it well, it could
have been make a lot easier and faster to use.

/* Disclaimer: All statments and opinions expressed are my own */
/* Edmund K. Lai                                               */
/* Apple Computer, MS37-AS                                     */
/* 20525 Mariani Ave,                                          */
/* Cupertino, CA 95014                                         */
/* (408)974-6272                                               */
zW@h9cOi

---

From: Bo HU <[email-masked]>
Date: Thu, 8 Apr 1993 08:36:07 -0400

Also on PC there is a system called Munich System which can even more than
described in the forwarded messages below. Essentially, one can input a whole
sentence or several sentences in pinyin (for example: 512 characters), without
looking at the screen at all and than drive the cursor back to the words which
were not correctly interpreted by the system. The system marks all words of
which it is not sure. Adding, deleting, listing words and changing their
priorities are state of the art. The user can also strike a key to translate a
word back to pinyin for editing (typically "can" <-> "chang").

This system was initially developed by Prof. Heinzl (Technische Universitaet
Muenchen), Dr. Zhang Shuying ("Jiaotong DaXue"[?], Shanghai), Dr. Ding Tianhuai
(QingHua Daxue, Beijing), Dr. A. Lachner (resent address: Universitaet Bern)
and some students (Begin of the project was dated as early as 1979). I
re-implemented this for DOS systems (useable in combination with the most
character based DOS-programms) two years ago. A demo of another implementation
of this method is ftp-able under the name EasyWin (a stand-alone DOS
wordprocessor) from ifccs.org or ftp.lrz-muenchen.de (Europe).

Since GB-coded, stable Windows-systems are now available, it seems to be
interessting now to implement Munich System for Windows (MSW)...

------- Ed Lai wrote:

Date: 07 Apr 93 20:42:11+0200
From: Ed Lai <[email-masked]>
Sender: Chinese Computing Network <[email-masked]>
Reply-To: Ed Lai <[email-masked]>
Subject: Re: Input Method
To: Multiple recipients of list CCNET-L <[email-masked]>

Haizi Xu wrote

Yuntao wrote

zhong1wen2
zhongwen         ignore the tone

So you type z

------- End of Forwarded Message