1 // Implementation of CMorpheme, CMorphemeListViewItem methods
2 // Copyright © 2009 The University of Chicago
7 #include "MorphemeCollection.h"
10 CMorphemeListViewItem::CMorphemeListViewItem( Q3ListView
*parent
,
13 : Q3ListViewItem( parent
, label1
)
15 m_morpheme
= morpheme
;
18 QString
CMorphemeListViewItem::key( int column
, bool ascending
) const
26 string
= QString("%1").arg( m_morpheme
->GetILogProb(), 10 );
29 string
= QString("%1").arg( m_morpheme
->GetMorphemeCount(), 10 );
32 string
= QString("%1").arg( m_morpheme
->GetCorpusCount(), 10 );
35 string
= QString("%1").arg( m_morpheme
->GetPF(), 10 );
38 string
= QString("%1").arg( m_morpheme
->GetSF(), 10 );
41 string
= QString("%1").arg( m_morpheme
->GetSortingQuantity(), 10 );
44 string
= QString("%1").arg( m_morpheme
->GetDLSavings(), 10 );
47 string
= QString("%1").arg( m_morpheme
->GetFrequency(), 10 );
50 string
= m_morpheme
->GetSuffixList()->Display('.');
53 return Q3ListViewItem::key( column
, ascending
);
56 else return Q3ListViewItem::key( column
, ascending
);
59 QString
CMorphemeListViewItem::text( int column
) const
67 string
= QString("%1").arg( m_morpheme
->GetILogProb() );
70 string
= QString("%1").arg( m_morpheme
->GetMorphemeCount() );
73 string
= QString("%1").arg( m_morpheme
->GetCorpusCount() );
76 string
= QString("%1").arg( m_morpheme
->GetPF() );
79 string
= QString("%1").arg( m_morpheme
->GetSF() );
82 string
= QString("%1").arg( m_morpheme
->GetSortingQuantity() );
85 string
= QString("%1").arg( m_morpheme
->GetDLSavings() );
88 string
= QString("%1").arg( m_morpheme
->GetFrequency() );
91 string
= m_morpheme
->GetSuffixList()->Display('.');
94 return Q3ListViewItem::text( column
);
97 else return Q3ListViewItem::text( column
);
102 CMorpheme::CMorpheme(CMiniLexicon
* lex
): CLParse(lex
)
107 CMorpheme::CMorpheme(CMorpheme
* RHS
): CLParse(*RHS
,RHS
->GetMyMini())
110 m_DLImprovementFromSuffixes
= 0;
118 CMorpheme::~CMorpheme()
125 CMorpheme::CMorpheme (CStringSurrogate SS
, CMiniLexicon
* mini
): CLParse (SS
,mini
)
128 m_DLImprovementFromSuffixes
= 0;
133 void CMorpheme::AddSuffix(CStringSurrogate SS
)
135 // if( m_SuffixList.GetSortStyle() ) m_SuffixList.Alphabetize();
136 m_SuffixList
.Append( SS
);
139 CParse
* CMorpheme::GetSuffixList()
141 return &m_SuffixList
;
144 CParse
* CMorpheme::GetPrefixList()
146 return &m_PrefixList
;
149 void CMorpheme::AddPrefix(CStringSurrogate SS
)
151 // if( !m_PrefixList.Alphabetical() ) m_PrefixList.Alphabetize();
152 m_PrefixList
.Append( SS
);
156 double CMorpheme::GetILogProb() { return m_ILogProb
; }
158 void CMorpheme::SetILogProb( double d
) { m_ILogProb
= d
; }
160 void CMorpheme::ListDisplay(Q3ListView
* List
)
162 static_cast<void>(new CMorphemeListViewItem(
163 List
, Display(), this));
166 double CMorpheme::GetFrequency () { return m_Frequency
; }
168 void CMorpheme::SetFrequency( double f
)
171 m_ILogProb
= -1 * base2log ( f
);
174 void CMorpheme::SetDLSavings( double d
) { m_DLSavings
= d
; }
176 double CMorpheme::GetDLSavings() { return m_DLSavings
; }
178 void CMorpheme::AddSuffixes ( CMorphemeCollection
* CMC
)
180 for (int i
= 0; i
< (int)CMC
->GetCount(); i
++)
181 AddSuffix ( CMC
->GetAt_SS(i
) );
183 void CMorpheme::CopySuffixList (CMorpheme
* Morpheme
)
185 m_SuffixList
= Morpheme
->GetSuffixList();
190 void CMorpheme::SetDLImprovementFromSuffixes ( double d
) { m_DLImprovementFromSuffixes
= d
; }
191 double CMorpheme::GetDLImprovementFromSuffixes () { return m_DLImprovementFromSuffixes
; }
193 void CMorpheme::IncrementMorphemeCount (double d
) { m_MorphemeCount
+= d
; }
194 void CMorpheme::SetMorphemeCount( double d
) { m_MorphemeCount
= d
; }
195 double CMorpheme::GetMorphemeCount () { return m_MorphemeCount
; }
197 float CMorpheme::GetSortingQuantity() const
200 return log(m_PF
) * log(m_SF
);