HOME

TheInfoList



OR:

The New York State Identification and Intelligence System Phonetic Code, commonly known as NYSIIS, is a
phonetic algorithm A phonetic algorithm is an algorithm for indexing of words by their pronunciation. Most phonetic algorithms were developed for English and are not useful for indexing words in other languages. Because English spelling varies significantly dependi ...
devised in 1970 as part of the
New York State New York, officially the State of New York, is a state in the Northeastern United States. It is often called New York State to distinguish it from its largest city, New York City. With a total area of , New York is the 27th-largest U.S. stat ...
Identification and Intelligence System (now a part of the New York State Division of Criminal Justice Services). It features an accuracy increase of 2.7% over the traditional Soundex algorithm.


Procedure

The algorithm, as described in ''Name Search Techniques'', is: #If the first letters of the name are #:'MAC' then change these letters to 'MCC' #:'KN' then change these letters to 'NN' #:'K' then change this letter to 'C' #:'PH' then change these letters to 'FF' #:'PF' then change these letters to 'FF' #:'SCH' then change these letters to 'SSS' #If the last letters of the name are #:'EE' then change these letters to 'Y␢' #:'IE' then change these letters to 'Y␢' #:'DT' or 'RT' or 'RD' or 'NT' or 'ND' then change these letters to 'D␢' #The first character of the NYSIIS code is the first character of the name. #In the following rules, a scan is performed on the characters of the name. This is described in terms of a program loop. A pointer is used to point to the current position under consideration in the name. Step 4 is to set this pointer to point to the second character of the name. #Considering the position of the pointer, only one of the following statements can be executed. ##If blank then go to rule 7. ##If the current position is a vowel (AEIOU) then if equal to 'EV' then change to 'AF' otherwise change current position to 'A'. ##If the current position is the letter ##:'Q' then change the letter to 'G' ##:'Z' then change the letter to 'S' ##:'M' then change the letter to 'N' ##If the current position is the letter 'K' then if the next letter is 'N' then replace the current position by 'N' otherwise replace the current position by 'C' ##If the current position points to the letter string ##:'SCH' then replace the string with 'SSS' ##:'PH' then replace the string with 'FF' ##If the current position is the letter 'H' and either the preceding or following letter is not a vowel (AEIOU) then replace the current position with the preceding letter. ##If the current position is the letter 'W' and the preceding letter is a vowel then replace the current position with the preceding position. ##If none of these rules applies, then retain the current position letter value. #If the current position letter is equal to the last letter placed in the code then set the pointer to point to the next letter and go to step 5.
The next character of the NYSIIS code is the current position letter.
Increment the pointer to point at the next letter.
Go to step 5. # If the last character of the NYSIIS code is the letter 'S' then remove it. # If the last two characters of the NYSIIS code are the letters 'AY' then replace them with the single character 'Y'. # If the last character of the NYSIIS code is the letter 'A' then remove this letter.


References

{{reflist


External links


USDA report with both the original NYSIIS procedure and a modified version


including pointers to several implementations

* ttp://coryodaniel.com/index.php/2009/12/30/ruby-nysiis-implementation Ruby Implementation
C# Implementation

PHP Implementation
Phonetic algorithms