[dasher: 6/27] Remove CSymbolAlphabet, use CAlphabet directly.
- From: Patrick Welche <pwelche src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dasher: 6/27] Remove CSymbolAlphabet, use CAlphabet directly.
- Date: Wed, 18 Aug 2010 15:10:11 +0000 (UTC)
commit 71d0cb9ae5a770326c263a498a9dc0bc23041968
Author: Alan Lawrence <acl33 inf phy cam ac uk>
Date: Wed Aug 4 20:10:12 2010 +0100
Remove CSymbolAlphabet, use CAlphabet directly.
(CSymbolAlphabet::GetSize() => CAlphabet::GetNumberTextSymbols())
.../LanguageModelling/BigramLanguageModel.cpp | 4 +-
.../LanguageModelling/BigramLanguageModel.h | 2 +-
.../LanguageModelling/CTWLanguageModel.cpp | 4 +-
.../LanguageModelling/CTWLanguageModel.h | 2 +-
.../LanguageModelling/DictLanguageModel.cpp | 12 ++--
.../LanguageModelling/DictLanguageModel.h | 2 +-
.../LanguageModelling/JapaneseLanguageModel.cpp | 4 +-
.../LanguageModelling/JapaneseLanguageModel.h | 2 +-
Src/DasherCore/LanguageModelling/LanguageModel.cpp | 4 +-
Src/DasherCore/LanguageModelling/LanguageModel.h | 22 +----
.../LanguageModelling/MixtureLanguageModel.h | 9 +-
.../LanguageModelling/PPMLanguageModel.cpp | 4 +-
.../LanguageModelling/PPMLanguageModel.h | 2 +-
.../LanguageModelling/PPMPYLanguageModel.cpp | 15 ++--
.../LanguageModelling/PPMPYLanguageModel.h | 4 +-
Src/DasherCore/LanguageModelling/SymbolAlphabet.h | 82 --------------------
.../LanguageModelling/WordLanguageModel.cpp | 14 ++--
.../LanguageModelling/WordLanguageModel.h | 2 +-
Src/DasherCore/NodeCreationManager.cpp | 23 ++----
Src/MacOSX/Dasher.xcodeproj/project.pbxproj | 4 -
20 files changed, 54 insertions(+), 163 deletions(-)
---
diff --git a/Src/DasherCore/LanguageModelling/BigramLanguageModel.cpp b/Src/DasherCore/LanguageModelling/BigramLanguageModel.cpp
index b73a61d..a46a0c2 100644
--- a/Src/DasherCore/LanguageModelling/BigramLanguageModel.cpp
+++ b/Src/DasherCore/LanguageModelling/BigramLanguageModel.cpp
@@ -23,8 +23,8 @@ static char THIS_FILE[] = __FILE__;
/////////////////////////////////////////////////////////////////////////////
-CBigramLanguageModel::CBigramLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CSymbolAlphabet &SymbolAlphabet)
-:CLanguageModel(pEventHandler, pSettingsStore, SymbolAlphabet), m_ContextAlloc(1024) {
+CBigramLanguageModel::CBigramLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CAlphabet *pAlph)
+:CLanguageModel(pEventHandler, pSettingsStore, pAlph), m_ContextAlloc(1024) {
}
diff --git a/Src/DasherCore/LanguageModelling/BigramLanguageModel.h b/Src/DasherCore/LanguageModelling/BigramLanguageModel.h
index 13d6db7..cd97829 100644
--- a/Src/DasherCore/LanguageModelling/BigramLanguageModel.h
+++ b/Src/DasherCore/LanguageModelling/BigramLanguageModel.h
@@ -25,7 +25,7 @@ namespace Dasher {
/// \{
class CBigramLanguageModel:public CLanguageModel, private NoClones {
public:
- CBigramLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CSymbolAlphabet & alph);
+ CBigramLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CAlphabet *pAlph);
virtual ~ CBigramLanguageModel();
Context CreateEmptyContext();
diff --git a/Src/DasherCore/LanguageModelling/CTWLanguageModel.cpp b/Src/DasherCore/LanguageModelling/CTWLanguageModel.cpp
index af10800..91503f0 100644
--- a/Src/DasherCore/LanguageModelling/CTWLanguageModel.cpp
+++ b/Src/DasherCore/LanguageModelling/CTWLanguageModel.cpp
@@ -40,8 +40,8 @@ static char THIS_FILE[] = __FILE__;
#endif
-CCTWLanguageModel::CCTWLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CSymbolAlphabet &SymbolAlphabet)
-:CLanguageModel(pEventHandler, pSettingsStore, SymbolAlphabet){
+CCTWLanguageModel::CCTWLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CAlphabet *pAlph)
+:CLanguageModel(pEventHandler, pSettingsStore, pAlph){
Dasher::CHashTable HashTable; // create hashtable
MaxDepth = 6; // Maximum depth of the context tree
diff --git a/Src/DasherCore/LanguageModelling/CTWLanguageModel.h b/Src/DasherCore/LanguageModelling/CTWLanguageModel.h
index 5d2746d..e557b24 100644
--- a/Src/DasherCore/LanguageModelling/CTWLanguageModel.h
+++ b/Src/DasherCore/LanguageModelling/CTWLanguageModel.h
@@ -39,7 +39,7 @@ namespace Dasher {
// CTW language model
class CCTWLanguageModel: public CLanguageModel {
public:
- CCTWLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CSymbolAlphabet & alph);
+ CCTWLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CAlphabet *pAlph);
virtual ~ CCTWLanguageModel();
Context CreateEmptyContext();
diff --git a/Src/DasherCore/LanguageModelling/DictLanguageModel.cpp b/Src/DasherCore/LanguageModelling/DictLanguageModel.cpp
index 35bdec4..a4cd9b4 100644
--- a/Src/DasherCore/LanguageModelling/DictLanguageModel.cpp
+++ b/Src/DasherCore/LanguageModelling/DictLanguageModel.cpp
@@ -90,8 +90,8 @@ CDictLanguageModel::CDictnode * CDictLanguageModel::AddSymbolToNode(CDictnode *p
// CDictLanguageModel defs
/////////////////////////////////////////////////////////////////////
-CDictLanguageModel::CDictLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CSymbolAlphabet &Alphabet)
-:CLanguageModel(pEventHandler, pSettingsStore, Alphabet), NodesAllocated(0), max_order(0), m_NodeAlloc(8192), m_ContextAlloc(1024) {
+CDictLanguageModel::CDictLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CAlphabet *pAlph)
+:CLanguageModel(pEventHandler, pSettingsStore, pAlph), NodesAllocated(0), max_order(0), m_NodeAlloc(8192), m_ContextAlloc(1024) {
m_pRoot = m_NodeAlloc.Alloc();
m_pRoot->sbl = -1;
m_rootcontext = new CDictContext(m_pRoot, 0);
@@ -111,10 +111,10 @@ CDictLanguageModel::CDictLanguageModel(Dasher::CEventHandler *pEventHandler, CSe
Context TempContext(CreateEmptyContext());
- // std::cout << SymbolAlphabet().GetAlphabetPointer() << std::endl;
+ // std::cout << m_pAlphabet << std::endl;
std::vector < symbol > Symbols;
- SymbolAlphabet().GetAlphabetPointer()->GetSymbols(Symbols, CurrentWord);
+ m_pAlphabet->GetSymbols(Symbols, CurrentWord);
for(std::vector < symbol >::iterator it(Symbols.begin()); it != Symbols.end(); ++it) {
MyLearnSymbol(TempContext, *it);
@@ -530,7 +530,7 @@ void CDictLanguageModel::AddSymbol(CDictLanguageModel::CDictContext &context, sy
// Collapse the context if we have started a new word
- if(sym == SymbolAlphabet().GetSpaceSymbol()) {
+ if(sym == m_pAlphabet->GetSpaceSymbol()) {
CollapseContext(context);
}
@@ -562,7 +562,7 @@ void CDictLanguageModel::EnterSymbol(Context c, int Symbol) {
// collapse the context - the information required to update the
// word part of the context is stored in the string.
- if(Symbol == SymbolAlphabet().GetSpaceSymbol()) {
+ if(Symbol == m_pAlphabet->GetSpaceSymbol()) {
CollapseContext(context);
return;
}
diff --git a/Src/DasherCore/LanguageModelling/DictLanguageModel.h b/Src/DasherCore/LanguageModelling/DictLanguageModel.h
index d0c5dba..44fbdcb 100644
--- a/Src/DasherCore/LanguageModelling/DictLanguageModel.h
+++ b/Src/DasherCore/LanguageModelling/DictLanguageModel.h
@@ -28,7 +28,7 @@ namespace Dasher {
/// \{
class CDictLanguageModel:public CLanguageModel {
public:
- CDictLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CSymbolAlphabet & Alphabet);
+ CDictLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CAlphabet *pAlph);
virtual ~CDictLanguageModel();
Context CreateEmptyContext();
diff --git a/Src/DasherCore/LanguageModelling/JapaneseLanguageModel.cpp b/Src/DasherCore/LanguageModelling/JapaneseLanguageModel.cpp
index ac1ca8a..5aa6a42 100644
--- a/Src/DasherCore/LanguageModelling/JapaneseLanguageModel.cpp
+++ b/Src/DasherCore/LanguageModelling/JapaneseLanguageModel.cpp
@@ -38,8 +38,8 @@ static char THIS_FILE[] = __FILE__;
/////////////////////////////////////////////////////////////////////
-CJapaneseLanguageModel::CJapaneseLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CSymbolAlphabet &SymbolAlphabet)
-:CLanguageModel(pEventHandler, pSettingsStore, SymbolAlphabet), m_iMaxOrder(5), NodesAllocated(0), m_NodeAlloc(8192), m_ContextAlloc(1024) {
+CJapaneseLanguageModel::CJapaneseLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CAlphabet *pAlph)
+:CLanguageModel(pEventHandler, pSettingsStore, pAlph), m_iMaxOrder(5), NodesAllocated(0), m_NodeAlloc(8192), m_ContextAlloc(1024) {
m_pRoot = m_NodeAlloc.Alloc();
m_pRoot->symbol = -1;
diff --git a/Src/DasherCore/LanguageModelling/JapaneseLanguageModel.h b/Src/DasherCore/LanguageModelling/JapaneseLanguageModel.h
index 98737c3..034d791 100644
--- a/Src/DasherCore/LanguageModelling/JapaneseLanguageModel.h
+++ b/Src/DasherCore/LanguageModelling/JapaneseLanguageModel.h
@@ -21,7 +21,7 @@ namespace Dasher {
/// \{
class CJapaneseLanguageModel:public CLanguageModel, private NoClones {
public:
- CJapaneseLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CSymbolAlphabet & alph);
+ CJapaneseLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CAlphabet *pAlph);
virtual ~ CJapaneseLanguageModel();
diff --git a/Src/DasherCore/LanguageModelling/LanguageModel.cpp b/Src/DasherCore/LanguageModelling/LanguageModel.cpp
index 14b084e..541bd32 100644
--- a/Src/DasherCore/LanguageModelling/LanguageModel.cpp
+++ b/Src/DasherCore/LanguageModelling/LanguageModel.cpp
@@ -27,8 +27,8 @@ static char THIS_FILE[] = __FILE__;
///////////////////////////////////////////////////////////////////
-CLanguageModel::CLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CSymbolAlphabet &Alphabet)
- :CDasherComponent(pEventHandler, pSettingsStore), m_Alphabet(Alphabet) {
+CLanguageModel::CLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CAlphabet *pAlph)
+ :CDasherComponent(pEventHandler, pSettingsStore), m_pAlphabet(pAlph) {
}
void CLanguageModel::HandleEvent(Dasher::CEvent *pEvent) {
diff --git a/Src/DasherCore/LanguageModelling/LanguageModel.h b/Src/DasherCore/LanguageModelling/LanguageModel.h
index 684e3a7..28365d0 100644
--- a/Src/DasherCore/LanguageModelling/LanguageModel.h
+++ b/Src/DasherCore/LanguageModelling/LanguageModel.h
@@ -11,7 +11,7 @@
#include "../DasherTypes.h"
-#include "SymbolAlphabet.h"
+#include "../Alphabet/Alphabet.h"
#include "../DasherComponent.h"
#include <vector>
@@ -36,7 +36,7 @@ public:
/////////////////////////////////////////////////////////////////////////////
- CLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CSymbolAlphabet &Alphabet);
+ CLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CAlphabet *pAlph);
virtual ~CLanguageModel() {};
@@ -118,17 +118,6 @@ public:
/// @}
- /// @name Internal member access
- /// Access to internal member classes. This is dangerous and should
- /// be considered obsolete.
- /// @{
-
- const CSymbolAlphabet &SymbolAlphabet() const {
- return m_Alphabet;
- };
-
- /// @}
-
///
/// Get the maximum useful context length for this language model
@@ -157,13 +146,10 @@ public:
};
int GetSize() const {
- return m_Alphabet.GetSize();
+ return m_pAlphabet->GetNumberTextSymbols();
}
-
- private:
-
- const CSymbolAlphabet m_Alphabet;
+ const CAlphabet *m_pAlphabet;
};
diff --git a/Src/DasherCore/LanguageModelling/MixtureLanguageModel.h b/Src/DasherCore/LanguageModelling/MixtureLanguageModel.h
index 7a78907..7bcee9a 100644
--- a/Src/DasherCore/LanguageModelling/MixtureLanguageModel.h
+++ b/Src/DasherCore/LanguageModelling/MixtureLanguageModel.h
@@ -13,7 +13,6 @@
#include "PPMLanguageModel.h"
#include "DictLanguageModel.h"
-#include "SymbolAlphabet.h"
//#include <iostream>
#include <vector>
@@ -29,14 +28,14 @@ namespace Dasher {
/////////////////////////////////////////////////////////////////////////////
- CMixtureLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CSymbolAlphabet & Alphabet):CLanguageModel(pEventHandler, pSettingsStore, Alphabet) {
+ CMixtureLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CAlphabet *pAlph):CLanguageModel(pEventHandler, pSettingsStore, pAlph) {
- // std::cout << SymbolAlphabet().GetAlphabetPointer() << std::endl;
+ // std::cout << m_pAlphabet << std::endl;
NextContext = 0;
- lma = new CPPMLanguageModel(m_pEventHandler, m_pSettingsStore, Alphabet);
- lmb = new CDictLanguageModel(m_pEventHandler, m_pSettingsStore, Alphabet);
+ lma = new CPPMLanguageModel(m_pEventHandler, m_pSettingsStore, m_pAlphabet);
+ lmb = new CDictLanguageModel(m_pEventHandler, m_pSettingsStore, m_pAlphabet);
};
diff --git a/Src/DasherCore/LanguageModelling/PPMLanguageModel.cpp b/Src/DasherCore/LanguageModelling/PPMLanguageModel.cpp
index ad0a739..3e39120 100644
--- a/Src/DasherCore/LanguageModelling/PPMLanguageModel.cpp
+++ b/Src/DasherCore/LanguageModelling/PPMLanguageModel.cpp
@@ -30,8 +30,8 @@ static char THIS_FILE[] = __FILE__;
/////////////////////////////////////////////////////////////////////
-CPPMLanguageModel::CPPMLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CSymbolAlphabet &SymbolAlphabet)
-:CLanguageModel(pEventHandler, pSettingsStore, SymbolAlphabet), m_iMaxOrder(4), NodesAllocated(0), m_NodeAlloc(8192), m_ContextAlloc(1024) {
+CPPMLanguageModel::CPPMLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CAlphabet *pAlph)
+:CLanguageModel(pEventHandler, pSettingsStore, pAlph), m_iMaxOrder(4), NodesAllocated(0), m_NodeAlloc(8192), m_ContextAlloc(1024) {
m_pRoot = m_NodeAlloc.Alloc();
m_pRoot->sym = -1;
diff --git a/Src/DasherCore/LanguageModelling/PPMLanguageModel.h b/Src/DasherCore/LanguageModelling/PPMLanguageModel.h
index b7edce3..5765658 100644
--- a/Src/DasherCore/LanguageModelling/PPMLanguageModel.h
+++ b/Src/DasherCore/LanguageModelling/PPMLanguageModel.h
@@ -90,7 +90,7 @@ namespace Dasher {
int order;
};
public:
- CPPMLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CSymbolAlphabet & alph);
+ CPPMLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CAlphabet *pAlph);
bool eq(CPPMLanguageModel *other);
virtual ~ CPPMLanguageModel();
diff --git a/Src/DasherCore/LanguageModelling/PPMPYLanguageModel.cpp b/Src/DasherCore/LanguageModelling/PPMPYLanguageModel.cpp
index 85fad58..1b13cf5 100644
--- a/Src/DasherCore/LanguageModelling/PPMPYLanguageModel.cpp
+++ b/Src/DasherCore/LanguageModelling/PPMPYLanguageModel.cpp
@@ -13,7 +13,6 @@
#include "../../Common/Common.h"
#include "PPMPYLanguageModel.h"
#include "LanguageModel.h"
-#include "SymbolAlphabet.h"
#include <math.h>
#include <stack>
#include <sstream>
@@ -34,8 +33,8 @@ static char THIS_FILE[] = __FILE__;
/////////////////////////////////////////////////////////////////////
-CPPMPYLanguageModel::CPPMPYLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CSymbolAlphabet &SymbolAlphabet, const CSymbolAlphabet &pySymbolAlphabet)
- :CLanguageModel(pEventHandler, pSettingsStore, SymbolAlphabet), m_iMaxOrder(2), NodesAllocated(0), m_NodeAlloc(8192), m_ContextAlloc(1024), m_pyAlphabet(pySymbolAlphabet){
+CPPMPYLanguageModel::CPPMPYLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, const CAlphabet *pAlph, const CAlphabet *pPyAlphabet)
+ :CLanguageModel(pEventHandler, pSettingsStore, pAlph), m_iMaxOrder(2), NodesAllocated(0), m_NodeAlloc(8192), m_ContextAlloc(1024), m_pPyAlphabet(pPyAlphabet){
m_pRoot = m_NodeAlloc.Alloc();
m_pRoot->symbol = -1;
// m_pRoot->child.resize(DIVISION, NULL);
@@ -47,9 +46,9 @@ CPPMPYLanguageModel::CPPMPYLanguageModel(Dasher::CEventHandler *pEventHandler, C
m_pRootContext->head = m_pRoot;
m_pRootContext->order = 0;
- m_iAlphSize = SymbolAlphabet.GetSize();
+ m_iAlphSize = GetSize();
// std::cout<<"Alphaunit: "<<UNITALPH<<std::endl;
- m_iPYAlphSize = pySymbolAlphabet.GetSize();
+ m_iPYAlphSize = m_pPyAlphabet->GetNumberTextSymbols();
// std::cout<<"PYunit: "<<UNITPY<<std::endl;
// Cache the result of update exclusion - otherwise we have to look up a lot when training, which is slow
@@ -328,7 +327,7 @@ void CPPMPYLanguageModel::GetProbs(Context context, std::vector<unsigned int> &p
*/
// DASHER_ASSERT(m_setContexts.count(ppmcontext) > 0);
- int iNumSymbols = m_pyAlphabet.GetSize();
+ int iNumSymbols = m_pPyAlphabet->GetNumberTextSymbols();
probs.resize(iNumSymbols);
@@ -483,7 +482,7 @@ void CPPMPYLanguageModel::AddPYSymbol(CPPMPYLanguageModel::CPPMPYContext &contex
if(pysym==0)
return;
- DASHER_ASSERT(pysym >= 0 && pysym < m_pyAlphabet.GetSize());
+ DASHER_ASSERT(pysym >= 0 && pysym < m_pPyAlphabet->GetNumberTextSymbols());
CPPMPYnode *vineptr, *temp, *pytail;
int updatecnt = 1;
@@ -577,7 +576,7 @@ void CPPMPYLanguageModel::LearnPYSymbol(Context c, int Symbol) {
return;
- DASHER_ASSERT(Symbol >= 0 && Symbol < m_pyAlphabet.GetSize());
+ DASHER_ASSERT(Symbol >= 0 && Symbol < m_pPyAlphabet->GetNumberTextSymbols());
CPPMPYLanguageModel::CPPMPYContext & context = *(CPPMPYContext *) (c);
// std::cout<<"py learn context : "<<context.head->symbol<<std::endl;
diff --git a/Src/DasherCore/LanguageModelling/PPMPYLanguageModel.h b/Src/DasherCore/LanguageModelling/PPMPYLanguageModel.h
index fcca317..38258dc 100644
--- a/Src/DasherCore/LanguageModelling/PPMPYLanguageModel.h
+++ b/Src/DasherCore/LanguageModelling/PPMPYLanguageModel.h
@@ -75,7 +75,7 @@ namespace Dasher {
};
public:
- CPPMPYLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CSymbolAlphabet & alph, const CSymbolAlphabet & pyalph);
+ CPPMPYLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CAlphabet *pAlph, const CAlphabet *pPyAlph);
virtual ~ CPPMPYLanguageModel();
@@ -131,7 +131,7 @@ namespace Dasher {
private:
- CSymbolAlphabet m_pyAlphabet;
+ const CAlphabet *m_pPyAlphabet;
int m_iAlphSize;
int m_iPYAlphSize;
diff --git a/Src/DasherCore/LanguageModelling/WordLanguageModel.cpp b/Src/DasherCore/LanguageModelling/WordLanguageModel.cpp
index 7886bc6..ec9ec9c 100644
--- a/Src/DasherCore/LanguageModelling/WordLanguageModel.cpp
+++ b/Src/DasherCore/LanguageModelling/WordLanguageModel.cpp
@@ -122,8 +122,8 @@ CWordLanguageModel::CWordnode * CWordLanguageModel::AddSymbolToNode(CWordnode *p
/////////////////////////////////////////////////////////////////////
CWordLanguageModel::CWordLanguageModel(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore,
- const CSymbolAlphabet &Alphabet)
- :CLanguageModel(pEventHandler, pSettingsStore, Alphabet), NodesAllocated(0),
+ const CAlphabet *pAlph)
+ :CLanguageModel(pEventHandler, pSettingsStore, pAlph), NodesAllocated(0),
max_order(2), m_NodeAlloc(8192), m_ContextAlloc(1024) {
// Construct a root node for the trie
@@ -134,7 +134,7 @@ CWordLanguageModel::CWordLanguageModel(Dasher::CEventHandler *pEventHandler, CSe
// Create a spelling model
- pSpellingModel = new CPPMLanguageModel(m_pEventHandler, m_pSettingsStore, Alphabet);
+ pSpellingModel = new CPPMLanguageModel(m_pEventHandler, m_pSettingsStore, m_pAlphabet);
// Construct a root context
@@ -163,10 +163,10 @@ CWordLanguageModel::CWordLanguageModel(Dasher::CEventHandler *pEventHandler, CSe
CPPMLanguageModel::Context TempContext(pSpellingModel->CreateEmptyContext());
- // std::cout << SymbolAlphabet().GetAlphabetPointer() << std::endl;
+ // std::cout << m_pAlphabet << std::endl;
std::vector < symbol > Symbols;
- SymbolAlphabet().GetAlphabetPointer()->GetSymbols(Symbols, CurrentWord);
+ m_pAlphabet->GetSymbols(Symbols, CurrentWord);
for(std::vector < symbol >::iterator it(Symbols.begin()); it != Symbols.end(); ++it) {
pSpellingModel->LearnSymbol(TempContext, *it);
@@ -386,7 +386,7 @@ void CWordLanguageModel::CollapseContext(CWordLanguageModel::CWordContext &conte
// FIXME - remember to delete member vectors when we're done
- // FIXME broken SymbolAlphabet().GetAlphabetPointer()->GetSymbols( &oSymbols, &(context.current_word), false );
+ // FIXME broken m_pAlphabet->GetSymbols( &oSymbols, &(context.current_word), false );
// We're not storing the actual string - just a list of symbol IDs
@@ -626,7 +626,7 @@ void CWordLanguageModel::AddSymbol(CWordLanguageModel::CWordContext &context, sy
// Collapse the context (with learning) if we've just entered a space
// FIXME - we need to generalise this for more languages.
- if(sym == SymbolAlphabet().GetSpaceSymbol()) {
+ if(sym == m_pAlphabet->GetSpaceSymbol()) {
CollapseContext(context, bLearn);
context.m_dSpellingFactor = 1.0;
}
diff --git a/Src/DasherCore/LanguageModelling/WordLanguageModel.h b/Src/DasherCore/LanguageModelling/WordLanguageModel.h
index c3c63ed..2154811 100644
--- a/Src/DasherCore/LanguageModelling/WordLanguageModel.h
+++ b/Src/DasherCore/LanguageModelling/WordLanguageModel.h
@@ -35,7 +35,7 @@ namespace Dasher {
///
class CWordLanguageModel:public CLanguageModel {
public:
- CWordLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CSymbolAlphabet & Alphabet);
+ CWordLanguageModel(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, const CAlphabet *pAlph);
virtual ~ CWordLanguageModel();
Context CreateEmptyContext();
diff --git a/Src/DasherCore/NodeCreationManager.cpp b/Src/DasherCore/NodeCreationManager.cpp
index 9392ca6..510448f 100644
--- a/Src/DasherCore/NodeCreationManager.cpp
+++ b/Src/DasherCore/NodeCreationManager.cpp
@@ -31,10 +31,6 @@ CNodeCreationManager::CNodeCreationManager(Dasher::CDasherInterfaceBase *pInterf
pSettingsStore->SetLongParameter(LP_REAL_ORIENTATION, m_pAlphabet->GetOrientation());
// --
- CSymbolAlphabet alphabet(m_pAlphabet->GetNumberTextSymbols());
- alphabet.SetSpaceSymbol(m_pAlphabet->GetSpaceSymbol()); // FIXME - is this right, or do we have to do some kind of translation?
- alphabet.SetAlphabetPointer(m_pAlphabet); // Horrible hack, but ignore for now.
-
// Create an appropriate language model;
//WZ: Mandarin Dasher Change
@@ -45,11 +41,8 @@ CNodeCreationManager::CNodeCreationManager(Dasher::CDasherInterfaceBase *pInterf
Dasher::CAlphIO::AlphInfo oCHAlphInfo = pAlphIO->GetInfo(CHAlphabet);
CAlphabet *pCHAlphabet = new CAlphabet(oCHAlphInfo);
- CSymbolAlphabet chalphabet(pCHAlphabet->GetNumberTextSymbols());
- chalphabet.SetSpaceSymbol(pCHAlphabet->GetSpaceSymbol());
- chalphabet.SetAlphabetPointer(pCHAlphabet);
- //std::cout<<"CHALphabet size "<<chalphabet.GetSize(); [7603]
- m_pLanguageModel = new CPPMPYLanguageModel(pEventHandler, pSettingsStore, chalphabet, alphabet);
+ //std::cout<<"CHALphabet size "<< pCHAlphabet->GetNumberTextSymbols(); [7603]
+ m_pLanguageModel = new CPPMPYLanguageModel(pEventHandler, pSettingsStore, pCHAlphabet, m_pAlphabet);
m_pTrainer = new CMandarinTrainer(m_pLanguageModel, m_pAlphabet, pCHAlphabet);
std::cout<<"Setting PPMPY model"<<std::endl;
}
@@ -59,22 +52,22 @@ CNodeCreationManager::CNodeCreationManager(Dasher::CDasherInterfaceBase *pInterf
// FIXME - return to using enum here
switch (pSettingsStore->GetLongParameter(LP_LANGUAGE_MODEL_ID)) {
case 0:
- m_pLanguageModel = new CPPMLanguageModel(pEventHandler, pSettingsStore, alphabet);
+ m_pLanguageModel = new CPPMLanguageModel(pEventHandler, pSettingsStore, m_pAlphabet);
break;
case 2:
- m_pLanguageModel = new CWordLanguageModel(pEventHandler, pSettingsStore, alphabet);
+ m_pLanguageModel = new CWordLanguageModel(pEventHandler, pSettingsStore, m_pAlphabet);
break;
case 3:
- m_pLanguageModel = new CMixtureLanguageModel(pEventHandler, pSettingsStore, alphabet);
+ m_pLanguageModel = new CMixtureLanguageModel(pEventHandler, pSettingsStore, m_pAlphabet);
break;
case 4:
- m_pLanguageModel = new CCTWLanguageModel(pEventHandler, pSettingsStore, alphabet);
+ m_pLanguageModel = new CCTWLanguageModel(pEventHandler, pSettingsStore, m_pAlphabet);
break;
default:
// If there is a bogus value for the language model ID, we'll default
// to our trusty old PPM language model.
- m_pLanguageModel = new CPPMLanguageModel(pEventHandler, pSettingsStore, alphabet);
+ m_pLanguageModel = new CPPMLanguageModel(pEventHandler, pSettingsStore, m_pAlphabet);
break;
}
m_pTrainer = new CTrainer(m_pLanguageModel, m_pAlphabet);
@@ -111,7 +104,7 @@ CNodeCreationManager::CNodeCreationManager(Dasher::CDasherInterfaceBase *pInterf
//test...
m_pLanguageModel->WriteToFile("test.model");
CPPMLanguageModel *pLan = (CPPMLanguageModel *)m_pLanguageModel;
- CPPMLanguageModel *pLM2 = new CPPMLanguageModel(pEventHandler, pSettingsStore, pLan->SymbolAlphabet());
+ CPPMLanguageModel *pLM2 = new CPPMLanguageModel(pEventHandler, pSettingsStore, m_pAlphabet);
pLM2->ReadFromFile("test.model");
if (!pLan->eq(pLM2)) {
std::cout << "Not equal!" << std::endl;
diff --git a/Src/MacOSX/Dasher.xcodeproj/project.pbxproj b/Src/MacOSX/Dasher.xcodeproj/project.pbxproj
index 96388ae..9750753 100755
--- a/Src/MacOSX/Dasher.xcodeproj/project.pbxproj
+++ b/Src/MacOSX/Dasher.xcodeproj/project.pbxproj
@@ -99,7 +99,6 @@
1948BF060C226CFD001DFA32 /* MixtureLanguageModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 1948BE610C226CFD001DFA32 /* MixtureLanguageModel.h */; };
1948BF070C226CFD001DFA32 /* PPMLanguageModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1948BE620C226CFD001DFA32 /* PPMLanguageModel.cpp */; };
1948BF080C226CFD001DFA32 /* PPMLanguageModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 1948BE630C226CFD001DFA32 /* PPMLanguageModel.h */; };
- 1948BF090C226CFD001DFA32 /* SymbolAlphabet.h in Headers */ = {isa = PBXBuildFile; fileRef = 1948BE640C226CFD001DFA32 /* SymbolAlphabet.h */; };
1948BF0A0C226CFD001DFA32 /* WordLanguageModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1948BE650C226CFD001DFA32 /* WordLanguageModel.cpp */; };
1948BF0B0C226CFD001DFA32 /* WordLanguageModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 1948BE660C226CFD001DFA32 /* WordLanguageModel.h */; };
1948BF0D0C226CFD001DFA32 /* MemoryLeak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1948BE680C226CFD001DFA32 /* MemoryLeak.cpp */; };
@@ -510,7 +509,6 @@
1948BE610C226CFD001DFA32 /* MixtureLanguageModel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MixtureLanguageModel.h; sourceTree = "<group>"; };
1948BE620C226CFD001DFA32 /* PPMLanguageModel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PPMLanguageModel.cpp; sourceTree = "<group>"; };
1948BE630C226CFD001DFA32 /* PPMLanguageModel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PPMLanguageModel.h; sourceTree = "<group>"; };
- 1948BE640C226CFD001DFA32 /* SymbolAlphabet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SymbolAlphabet.h; sourceTree = "<group>"; };
1948BE650C226CFD001DFA32 /* WordLanguageModel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = WordLanguageModel.cpp; sourceTree = "<group>"; };
1948BE660C226CFD001DFA32 /* WordLanguageModel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WordLanguageModel.h; sourceTree = "<group>"; };
1948BE680C226CFD001DFA32 /* MemoryLeak.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MemoryLeak.cpp; sourceTree = "<group>"; };
@@ -1096,7 +1094,6 @@
1948BE610C226CFD001DFA32 /* MixtureLanguageModel.h */,
1948BE620C226CFD001DFA32 /* PPMLanguageModel.cpp */,
1948BE630C226CFD001DFA32 /* PPMLanguageModel.h */,
- 1948BE640C226CFD001DFA32 /* SymbolAlphabet.h */,
1948BE650C226CFD001DFA32 /* WordLanguageModel.cpp */,
1948BE660C226CFD001DFA32 /* WordLanguageModel.h */,
);
@@ -1449,7 +1446,6 @@
1948BF040C226CFD001DFA32 /* LanguageModel.h in Headers */,
1948BF060C226CFD001DFA32 /* MixtureLanguageModel.h in Headers */,
1948BF080C226CFD001DFA32 /* PPMLanguageModel.h in Headers */,
- 1948BF090C226CFD001DFA32 /* SymbolAlphabet.h in Headers */,
1948BF0B0C226CFD001DFA32 /* WordLanguageModel.h in Headers */,
1948BF0E0C226CFD001DFA32 /* MemoryLeak.h in Headers */,
1948BF110C226CFD001DFA32 /* ModuleManager.h in Headers */,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]