Files
doc-fr/reference/strings/functions/similar-text.xml
George Peter Banyard 0ef4bced05 Apply SVN revision 351904
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@351916 c90b9560-bf6c-de11-be94-00142212c4b1
2020-12-06 00:48:15 +00:00

143 lines
4.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e095023e408c8cb6378ae16bb6870343a3946919 Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.similar-text" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>similar_text</refname>
<refpurpose>Calcule la similarité de deux chaînes</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>similar_text</methodname>
<methodparam><type>string</type><parameter>string1</parameter></methodparam>
<methodparam><type>string</type><parameter>string2</parameter></methodparam>
<methodparam choice="opt"><type>float</type><parameter role="reference">percent</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Calcule la similarité entre les deux chaînes <parameter>string1</parameter>
et <parameter>string2</parameter>, selon la méthode décrite dans
&book.programming.classics;. Notez
que cette implémentation n'utilise pas la méthode de pile comme dans le
pseudo code d'Oliver, mais des appels récursifs, ce qui accélère ou pas
le processus. Notez que la complexité de l'algorithme est en O(N**3) où
N est la taille de la plus grande chaîne.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string1</parameter></term>
<listitem>
<para>
La première chaîne.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>string2</parameter></term>
<listitem>
<para>
La seconde chaîne.
</para>
<note>
<para>
Inverser <parameter>string1</parameter> et
<parameter>string2</parameter> peut produire des résultats différents ;
voir l'exemple ci-dessous.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>percent</parameter></term>
<listitem>
<para>
En passant une référence en tant que troisième argument,
<function>similar_text</function> va calculer la similarité en
pourcentage, en divisant le résultat de <function>similar_text</function>
par la moyenne de la longueur des &string; fournies fois
<literal>100</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne le nombre de caractères correspondant dans les deux &string;.
</para>
<para>
Le nombre de caractères correspondant est calculés en trouvant la première plus
longue sous-chaîne commune, et puis faire ceci pour les préfixes et les sufixes,
de façon récursive. La longueur de toutes les sous-chaînes communes sont ajoutées.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example xml:id="similar_text.example.swapping">
<title>Exemple de <function>similar_text</function> en inversant les arguments</title>
<para>
Cet exemple montre qu'inverser les arguments <parameter>string1</parameter> et
<parameter>string2</parameter> peut produire des résultats différents.
</para>
<programlisting role="php">
<![CDATA[
<?php
$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "similarity: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "similarity: $sim ($perc %)\n";
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
similarity: 5 (71.428571428571 %)
similarity: 3 (42.857142857143 %)
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>levenshtein</function></member>
<member><function>soundex</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->