Sentence.java
2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package LIA_topic_seg;
import java.util.*;
/**
* Cette classe représente les informations contenues dans une phrase, c'est à dire un texte brut
* et un ensemble de lemmes pondérés.
*/
class Sentence
{
//--------------------------------------------------------------------------
/**
* Cette classe permet de conserver les informations sur un lemme, c'est à dire son rang d'accès
* dans le dictionnaire des lemmes, et le poids qui lui est attribué dans le fichier d'entrée.
*/
class Lemma
{
int code;
float weight;
Lemma(int c, float w)
{
code = c;
weight = w;
}
}
//--------------------------------------------------------------------------
String content;
private ArrayList<Lemma> _lemmaList = new ArrayList<Lemma>();
//private Hashtable<Integer, Integer> _dict
// = new Hashtable<Integer, Integer>(); // code + occurences
private int _wordCount;
private boolean _wordCountDefined = false;
//--------------------------------------------------------------------------
/**
* Cette fonction permet de signaler la présence d'un lemme dans une phrase
* @param code : le code issu du dictionnaire des lemmes
* @param weight : le poids attribué au lemme dans la phrase
*/ void addLemma(int code, float weight)
{
//int occurences = 1;
//Integer xocc = _dict.get(code);
//if (xocc != null)
// occurences = xocc.intValue()+1;
//_dict.put(code, occurences);
_lemmaList.add(new Lemma(code, weight));
}
//--------------------------------------------------------------------------
/**
* Cette fonction permet de calculer de manière basique le nombre de mots du texte brut de la phrase
* les séparateurs de mots utilisés sont les caractères d'espacement.
* @return : retourne le nombre de mots de la phrase
*/
int wordCount()
{
if (!_wordCountDefined)
{
_wordCount = new StringTokenizer(content, " '\t\n\r\f").countTokens();
_wordCountDefined = true;
}
return _wordCount;
}
//--------------------------------------------------------------------------
/**
* Cette fonction renvoie le nombre de lemmes associés à la phrase
* @return le nombre de lemmes
*/
int lemmaCount()
{
return _lemmaList.size();
}
//--------------------------------------------------------------------------
/**
*Cette fonction permet d'accéder à un lemme de la phrase en fonction de son rang dans la phrase
*@return un objet de type Lemma (défini par un code dans le dictionnaire des lemmes et un poids)
*/
Lemma lemmaObject(int lemmaIdx)
{
return _lemmaList.get(lemmaIdx);
}
//--------------------------------------------------------------------------
//int lemmaOccurences(int lemmaCode)
//{
// return _dict.get(lemmaCode);
//}
//--------------------------------------------------------------------------
}