Configuration des options

Cela implique la création d'un fichier Options de formation contenant des informations sur votre modèle et les options à appliquer pour la formation du modèle. Ce fichier doit être au format XML avec un codage UFT-8 et inclure les fonctions de formation requises et l'en-tête suivants :

En-tête du fichier Options de formation

L'en-tête mentionne les détails du modèle, son type et le chemin d'accès aux fichiers de test et d'entrée.

  • modelName : nom du modèle
  • modelType : type du modèle (c'est-à-dire TC, ce qui signifie Text Categorization dans ce cas)
  • modelDescription : description du modèle
  • inputFilePath : emplacement du fichier d’entrée utilisé pour la formation du modèle
  • testFilePath : emplacement du fichier de test
    Remarque :

    Le fichier de test vérifie l’efficacité d’un modèle. Il détermine le comportement du modèle personnalisé avec différents paramètres de formation. Comme bonne pratique, il est conseillé d'utiliser différents fichiers d’entrée et de test pour former et évaluer vos modèles personnalisés.

    algorithm : algorithme Machine Learning utilisé pour la formation du modèle (par défaut, MaxEnt)

Fonctions de formation

Il s'agit des fonctions de formation que vous pouvez utiliser pour créer une catégorie.
Remarque : Si vous utilisez plusieurs fonctions, elles peuvent être placées dans n'importe quel ordre dans le fichier.
  • Lingustic feature : pour spécifier les propriétés de langue
    • Stemming : réduit les termes à leur souche, ou racine. Par exemple, « insurer » (assureur), « insured » (assuré) et « insures » (assure) peuvent être réduits à la racine « insure » (assurer).
      <trainingFeature>
      		<featureName>Stemming</featureName>
      </trainingFeature>
  • Keyword features : pour définir la liste des mots clés
    • IgnoreWords : également appelés stopwords. Cette fonction filtre les termes courants qui n'ont aucun effet sur la catégorisation, comme « the » (le), « and » (et) et « but » (mais). Ces termes doivent être uniquement séparés par des virgules et non pas par des espaces. Vous pouvez également utiliser la clé Append avec cette fonction, qui, lorsqu'elle est définie sur « True », est ajoutée à la liste de stopwords existante.
      <trainingFeature>
      		<featureName>IgnoreWords</featureName>
      		<featureParams>
      			<entry>
      				<key>WordList</key>
      				<value>
      					and,the,for,with,still,tri,rep,cust,keep,get,req,call
      				</value>
      			</entry>
      			<entry>
      				<key>Append</key>
      				<value>True</value>
      			</entry>
      		</featureParams>
      	</trainingFeature>
    • CategoryKeywords : identifie une catégorie pour une liste de mots clés appartenant à différentes listes personnalisées. Par exemple, Weekdays de la liste CategoryKeywords contient les mots clés Monday, Tuesday, Wednesday, Thursday et Friday.

      Cette fonction peut éventuellement spécifier si la correspondance doit être sensible à la casse. Si cela est utilisé, la valeur par défaut est true.

      <trainingFeature>
      	<featureName>CategoryKeywords</featureName>
      	<featureParams>
      		<entry>
      			<key>Weekdays</key> 
                          <!-- List of weekdays -->
      			<value>Monday,Tuesday,Wednesday,Thursday,Friday</value>
      		</entry>
      		<entry>
      			<key>WeekendDays</key>
                          <!-- List of weekend days -->
      			<value>Saturday,Sunday</value>
      		</entry>
      		<entry>
      			<key>CaseSensitive</key>
                          <value>True</value>
      		</entry>
      	</featureParams>
      </trainingFeature>
    • KeyWords : recherche les termes que vous avez spécifiés comme appartenant à une liste personnalisée, comme DaysOfWeek ou Month. Peut également éventuellement indiquer si la correspondance doit être sensible à la casse ; si cette option est utilisée, la valeur par défaut est true.
      <trainingFeature>
      	<featureName>KeyWords</featureName>
      	<featureParams>
      		<entry>
      			<key>KeyWordList</key>
      			<value>Monday,Tuesday</value>
      		</entry>
      		<entry>
      			<key>CaseSensitive</key>
      			<value>False</value>
      		</entry>
      	</featureParams>
      </trainingFeature>
  • Lexical Feature : pour spécifier les propriétés des lexèmes
    • NGram : recherche une partie d'une chaîne plus longue, avec « n », représentant le nombre de termes à rechercher. Par exemple, si vous recherchez l'expression « to be or not to be » (être ou ne pas être), vous pouvez rechercher un unigram « to » ou « be », un bigram « to be » ou « or not », ou un trigram « to be or » ou « not to be».
      <trainingFeature>
      		<featureName>NGram</featureName>
      		<featureParams>
      			<entry>
      				<key>Count</key>
      				<value>3</value>
      			</entry>
      		</featureParams>
      </trainingFeature>
Voici un exemple de fichier d'options de formation :
<trainingOptions>
	<modelName>modelone</modelName>
	<modelType>TC</modelType>
	<modelDescription>modelOne</modelDescription>
	<inputFilePath>C:/SpectrumIE/textclassification/train_Input.csv</inputFilePath>
	<testFilePath>C:/SpectrumIE/textclassification/train_Test.txt</testFilePath>
    <algorithm>SVM</algorithm>
	
	<trainingFeatures>

	<!-- Keyword features -->	
	<trainingFeature>
		<featureName>IgnoreWords</featureName>
		<featureParams>
			<entry>
				<key>WordList</key>
				<value>
					and,the,for,with,still,tri,rep,cust,keep,get,req,call
				</value>
			</entry>
			<entry>
				<key>Append</key>
				<value>True</value>
			</entry>
		</featureParams>
	</trainingFeature>

	<trainingFeature>
		<featureName>CategoryKeywords</featureName>
		<featureParams>
			<entry>
				<key>Category1/key>
				<value>CategoryKeyword1,CategoryKeyword2</value>
			</entry>
			<entry>
				<key>Category2/key>
				<value>CategoryKeyword3,CategoryKeyword4</value>
			</entry>                                                  
             </featureParams>
	</trainingFeature>

	<trainingFeature>
            <featureName>KeyWords</featureName>
	      <featureParams>
			<entry>
				<key>KeyWordList</key>
				<value>
					jam,misfeed,install,help,mechanical,failure,jam,pc,connection
				</value>
			</entry>
		</featureParams>
	</trainingFeature>

	<!-- Linguistic feature -->
	<trainingFeature>
		<featureName>Stemming</featureName>
	</trainingFeature>
	
	<!-- Lexical feature -->
	<trainingFeature>
		<featureName>NGram</featureName>
		<featureParams>
			<entry>
				<key>Count</key>
				<value>3</value>
			</entry>
		</featureParams>
	</trainingFeature>

	</trainingFeatures>
	</trainingOptions>