next up previous contents
Next: C. Credits Up: GNU Aspell 0.50.5 Previous: A. Changelog   Contents

Subsections

B. To Do

Words in bold indicate how you should refer to the item when discussing it with me or others.

B.1 Things that will be done by Aspell 0.51

These items are already done, or close to it, in the develpment version of Aspell.


B.2 Things that need to be done

These items need to be done before I consider Aspell finished. If you are interested in helping me with one of these tasks please email me. Good C++ skills are needed for most of these tasks involving coding. I hope to have these all done by Aspell 0.51.

B.3 Things I would like to get done

I would like to get these done. However, I may still consider Aspell finished with out. They will probably eventually get implemented. However, I could still use help with them.

B.4 Good ideas that are worth implementing

These items all sound like good ideas however I am not sure when I will get to implementing then if ever.

The following good ideas where found in the ispell WISHES file so I thought I would pass them on.

B.5 Notes and Status of various items

B.5.1 General region skipping

I want to implement this give other people an idea of how it should be done and because I am really sick of having to spell check through url and email address.

B.5.2 Word skipping by context

This was posted on the Aspell mailing list on January 1, 1999:

I had an idea on a great general way to determine if a word should be skipped. Determine the words to skip based on the symbols that (almost) always surround the word.

For example when asked to check the following C++ code:

cout « "My age is: " « num « endl;  
cout « "Next year I will be " « num + 1 « endl; 
cout, num, and endl will all be skipped. "cout" will be skipped because it is always preceded by a «. "num" will be skipped because it is always preceded by a «. And "endl" will be skipped because it is always between a « and a ;.

Given the following html code.

<table width=50% cellspacing=0 cellpadding=1>  
<tr><td>One<td>Two<td>Three  
<tr><td>1<td>2<td>3  
</table> 
 
<table cellspacing=0 cellpadding=1>  
</table>
table, width cellspacing, cellpadding, tr, td will all be skipped because they are always enclosed in "<>". Now of course table and width would be marked as correct anyway however there is no harm in skipping them.

So I was wondering if anyone on this list has any experience in writing this sort of context recognition code or could give me some pointers in the right direction.

This sort of word skipping will be very powerful if done right. I imagine that it could replace specific spell checker modes for Tex, Nroff, SGML etc because it will automatically be able to figure out where it should skip words. It could also probably do a very good job on programming languages code.

If you are interested in helping be out with this or just have general comments about the idea please let me know.

B.5.3 Hidden Markov Model

Knud Haugaard Sørensen suggested this one. From his email on the Aspell mailing list:

consider this examples.

a fone number. -> a phone number.
a fone dress. -> a fine dress.

the example illustrates that the right correction might depend on the context of the word. So I suggest that you take a look on HMM to solve this problem.

This might also provide a good base to include grammar correction in aspell.

see this link http://www.cse.ogi.edu/CSLU/HLTsurvey/ch1node7.html
I think it is a great idea. However unfortunately it will probably be very complicated to implement. Perhaps in the far future.

B.5.4 Email the Personal Dictionary

Some one suggest in a personal email:

Have you thought of adding a function to aspell, that - when the personal dictionary has grown significantly - sends the user's personal dictionary to the maintainer of the corresponding aspell dictionary? (if the user allows it)

It would be a very useful service to the dictionary maintainers, and I think most users can see their benefit in it too.
And I replied:

Yes I have considered something like that but not for the personal dictionaries but rather the replacement word list in order to get better test data for http://aspell.sourceforge.net/test/. The problem is I don't know of a good way to do this sense Aspell can also be used as a library. It also is not a real high priority, especially sense I would first need to learn how to send email within a C++ program.

B.5.5 Words With Spaces in Them

While this is something I would like to do it is not a simple task. The basic problem is that when tokenizing a string there is no good way to keep phrases together. So the solution is to some how add special conditions to certain words which will dictate which words can come before/after it. Then there is also a problem of how to come up with intelligent suggestions. What further complicates things is that many applications send words to Aspell a word at a time. So even if Aspell did support such a thing many applications that would use Aspell will not. So, in order for this to work applications will need to send text to Aspell a document or at least a sentence at a time. Unfortunately the framework for doing this is not there yet. It will be once I finish the filter interface. Another possible is to provide call back functions in which Aspell will be able to request the previous or next word on request. Yet again the framework for doing this is not there. Perhaps sometime in the near future.


next up previous contents
Next: C. Credits Up: GNU Aspell 0.50.5 Previous: A. Changelog   Contents
Kevin Atkinson 2004-02-10