{{Short description|Phonetic algorithm}} The '''New York State Identification and Intelligence System''' Phonetic Code, commonly known as NYSIIS, is a phonetic algorithm devised in 1970 as part of the New York State 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.<ref name="NYIISref">{{Citation | last1 = Rajkovic | first1 = P. | last2 = Jankovic | first2 = D. | contribution = Adaptation and Application of Daitch-Mokotoff Soundex Algorithm on Serbian Names | title = XVII Conference on Applied Mathematics | year = 2007 | place = Novi Sad, Serbia | contribution-url = http://sites.dmi.pmf.uns.ac.rs/events/2006/prim2006/Papers/pdf/193-Rajkovic-Jankovic.pdf | archive-url = https://web.archive.org/web/20110827085111/http://sites.dmi.pmf.uns.ac.rs/events/2006/prim2006/Papers/pdf/193-Rajkovic-Jankovic.pdf | archive-date = August 27, 2011 | url-status = dead }} </ref>
==Procedure== The algorithm, as described in ''Name Search Techniques'',<ref name="taft">{{Citation | last1 = Taft | first1 = R. L. | contribution = Name Search Techniques | title = New York State Identification and Intelligence System | year = 1970 | place = Albany, New York }} </ref> 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<ref>{{Cite web|url=https://www.fileformat.info/info/unicode/char/2422/index.htm|title=Unicode Character 'BLANK SYMBOL' (U+2422)}}</ref> #:'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.<br />The next character of the NYSIIS code is the current position letter.<br />Increment the pointer to point at the next letter.<br />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== * [https://web.archive.org/web/20181220230725/https://naldc.nal.usda.gov/download/27833/PDF USDA report with both the original NYSIIS procedure and a modified version] * [https://xlinux.nist.gov/dads/HTML/nysiis.html NIST ''Dictionary of Algorithms and Data Structures'' entry], including pointers to several implementations * [http://www.dropby.com/indexLF.html?content=/NYSIIS.html Sample coder, using a variant of the algorithm] * [http://coryodaniel.com/index.php/2009/12/30/ruby-nysiis-implementation Ruby Implementation] * [http://sounditout.codeplex.com/ C# Implementation] {{Webarchive|url=https://web.archive.org/web/20101216042037/http://sounditout.codeplex.com/ |date=2010-12-16 }} * [https://github.com/carloswph/linguistics/blob/main/src/Nysiis.php/ PHP Implementation] * [https://pypi.org/project/pynysiis/ Python Implementation]
Category:Phonetic algorithms