home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _f1deac30178ad5ccf397ebdf43fa93e5 < prev    next >
Text File  |  2000-03-23  |  5KB  |  115 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Text::Soundex - Implementation of the Soundex Algorithm as Described by Knuth</TITLE>
  5. <LINK REL="stylesheet" HREF="../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> Text::Soundex - Implementation of the Soundex Algorithm as Described by Knuth</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <LI><A HREF="#examples">EXAMPLES</A></LI>
  26.     <LI><A HREF="#limitations">LIMITATIONS</A></LI>
  27.     <LI><A HREF="#author">AUTHOR</A></LI>
  28. </UL>
  29. <!-- INDEX END -->
  30.  
  31. <HR>
  32. <P>
  33. <H1><A NAME="name">NAME</A></H1>
  34. <P>Text::Soundex - Implementation of the Soundex Algorithm as Described by Knuth</P>
  35. <P>
  36. <HR>
  37. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  38. <UL>
  39. <LI>Linux</LI>
  40. <LI>Solaris</LI>
  41. <LI>Windows</LI>
  42. </UL>
  43. <HR>
  44. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  45. <PRE>
  46.   use Text::Soundex;</PRE>
  47. <PRE>
  48.   $code = soundex $string;            # get soundex code for a string
  49.   @codes = soundex @list;             # get list of codes for list of strings</PRE>
  50. <PRE>
  51.   # set value to be returned for strings without soundex code</PRE>
  52. <PRE>
  53.   $soundex_nocode = 'Z000';</PRE>
  54. <P>
  55. <HR>
  56. <H1><A NAME="description">DESCRIPTION</A></H1>
  57. <P>This module implements the soundex algorithm as described by Donald Knuth
  58. in Volume 3 of <STRONG>The Art of Computer Programming</STRONG>.  The algorithm is
  59. intended to hash words (in particular surnames) into a small space using a
  60. simple model which approximates the sound of the word when spoken by an English
  61. speaker.  Each word is reduced to a four character string, the first
  62. character being an upper case letter and the remaining three being digits.</P>
  63. <P>If there is no soundex code representation for a string then the value of
  64. <CODE>$soundex_nocode</CODE> is returned.  This is initially set to <A HREF="../../lib/Pod/perlfunc.html#item_undef"><CODE>undef</CODE></A>, but
  65. many people seem to prefer an <EM>unlikely</EM> value like <CODE>Z000</CODE>
  66. (how unlikely this is depends on the data set being dealt with.)  Any value
  67. can be assigned to <CODE>$soundex_nocode</CODE>.</P>
  68. <P>In scalar context <CODE>soundex</CODE> returns the soundex code of its first
  69. argument, and in array context a list is returned in which each element is the 
  70. soundex code for the corresponding argument passed to <CODE>soundex</CODE> e.g.</P>
  71. <PRE>
  72.   @codes = soundex qw(Mike Stok);</PRE>
  73. <P>leaves <CODE>@codes</CODE> containing <CODE>('M200', 'S320')</CODE>.</P>
  74. <P>
  75. <HR>
  76. <H1><A NAME="examples">EXAMPLES</A></H1>
  77. <P>Knuth's examples of various names and the soundex codes they map to
  78. are listed below:</P>
  79. <PRE>
  80.   Euler, Ellery -> E460
  81.   Gauss, Ghosh -> G200
  82.   Hilbert, Heilbronn -> H416
  83.   Knuth, Kant -> K530
  84.   Lloyd, Ladd -> L300
  85.   Lukasiewicz, Lissajous -> L222</PRE>
  86. <P>so:</P>
  87. <PRE>
  88.   $code = soundex 'Knuth';              # $code contains 'K530'
  89.   @list = soundex qw(Lloyd Gauss);      # @list contains 'L300', 'G200'</PRE>
  90. <P>
  91. <HR>
  92. <H1><A NAME="limitations">LIMITATIONS</A></H1>
  93. <P>As the soundex algorithm was originally used a <STRONG>long</STRONG> time ago in the US
  94. it considers only the English alphabet and pronunciation.</P>
  95. <P>As it is mapping a large space (arbitrary length strings) onto a small
  96. space (single letter plus 3 digits) no inference can be made about the
  97. similarity of two strings which end up with the same soundex code.  For 
  98. example, both <CODE>Hilbert</CODE> and <CODE>Heilbronn</CODE> end up with a soundex code
  99. of <CODE>H416</CODE>.</P>
  100. <P>
  101. <HR>
  102. <H1><A NAME="author">AUTHOR</A></H1>
  103. <P>This code was implemented by Mike Stok (<CODE>stok@cybercom.net</CODE>) from the 
  104. description given by Knuth.  Ian Phillips (<CODE>ian@pipex.net</CODE>) and Rich Pinder 
  105. (<CODE>rpinder@hsc.usc.edu</CODE>) supplied ideas and spotted mistakes.</P>
  106. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  107. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  108. <STRONG><P CLASS=block> Text::Soundex - Implementation of the Soundex Algorithm as Described by Knuth</P></STRONG>
  109. </TD></TR>
  110. </TABLE>
  111.  
  112. </BODY>
  113.  
  114. </HTML>
  115.