<commit_before>// $Id$

#include "LanguageModelFactory.h"
#include "UserMessage.h"
#include "TypeDef.h"
#include "FactorCollection.h"

// include appropriate header
#ifdef LM_SRI
#  include "LanguageModel_SRI.h"
#endif
#ifdef LM_IRST
#  include "LanguageModel_IRST.h"
#endif

#include "LanguageModel_Chunking.h"
#include "LanguageModelJoint.h"

namespace LanguageModelFactory
{

	LanguageModel* CreateLanguageModel(LMImplementation lmImplementation, const std::vector<FactorType> &factorTypes     
                                   , size_t nGramOrder, const std::string &languageModelFile, float weight, FactorCollection &factorCollection)
	{
	  LanguageModel *lm = NULL;
	  switch (lmImplementation)
	  {
	  	case SRI:
				#ifdef LM_SRI
				  lm = new LanguageModel_SRI(true);
			  #else
	     		lm = new LanguageModel_IRST(true);
			  #endif
			  break;
			case IRST:
				#ifdef LM_IRST
	     		lm = new LanguageModel_IRST(true);
			  #else
				  lm = new LanguageModel_SRI(true);
				#endif
				break;
			case Chunking:
				#ifdef LM_SRI
	     		lm = new LanguageModel_Chunking(new LanguageModel_SRI(false), true);
				#else
     			#ifdef LM_IRST
	     			lm = new LanguageModel_Chunking(new LanguageModel_IRST(false), true);
     			#endif
				#endif
			case Joint:
				#ifdef LM_SRI
	     		lm = new LanguageModelJoint(new LanguageModel_SRI(false), true);
				#else
     			#ifdef LM_IRST
		     		lm = new LanguageModelJoint(new LanguageModel_IRST(false), true);
     			#endif
				#endif
	  }
	  
	  if (lm == NULL)
	  {<commit_msg>bug in creating factored LM<commit_after>// $Id$

#include "LanguageModelFactory.h"
#include "UserMessage.h"
#include "TypeDef.h"
#include "FactorCollection.h"

// include appropriate header
#ifdef LM_SRI
#  include "LanguageModel_SRI.h"
#endif
#ifdef LM_IRST
#  include "LanguageModel_IRST.h"
#endif

#include "LanguageModel_Chunking.h"
#include "LanguageModelJoint.h"

namespace LanguageModelFactory
{

	LanguageModel* CreateLanguageModel(LMImplementation lmImplementation, const std::vector<FactorType> &factorTypes     
                                   , size_t nGramOrder, const std::string &languageModelFile, float weight, FactorCollection &factorCollection)
	{
	  LanguageModel *lm = NULL;
	  switch (lmImplementation)
	  {
	  	case SRI:
				#ifdef LM_SRI
				  lm = new LanguageModel_SRI(true);
			  #else
	     		lm = new LanguageModel_IRST(true);
			  #endif
			  break;
			case IRST:
				#ifdef LM_IRST
	     		lm = new LanguageModel_IRST(true);
			  #else
				  lm = new LanguageModel_SRI(true);
				#endif
				break;
			case Chunking:
				#ifdef LM_SRI
	     		lm = new LanguageModel_Chunking(new LanguageModel_SRI(false), true);
				#else
     			#ifdef LM_IRST
	     			lm = new LanguageModel_Chunking(new LanguageModel_IRST(false), true);
     			#endif
				#endif
				break;
			case Joint:
				#ifdef LM_SRI
	     		lm = new LanguageModelJoint(new LanguageModel_SRI(false), true);
				#else
     			#ifdef LM_IRST
		     		lm = new LanguageModelJoint(new LanguageModel_IRST(false), true);
     			#endif
				#endif
				break;
	  }
	  
	  if (lm == NULL)
	  {
{'fraction_non_alphanumeric': 0.09166666666666666, 'fraction_numerical': 0.0, 'mean_word_length': 2.9859514687100894, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5267151', 'n_tokens_mistral': 1223, 'n_tokens_neox': 1009, 'n_words': 238}