private void splitOldGrammar(Grammar oldGrammar) {
		Counter<UnaryRule> unaryRuleCounter = new Counter<UnaryRule>();
		Counter<BinaryRule> binaryRuleCounter = new Counter<BinaryRule>();
		List<BinaryRule> oldBinaryRules = oldGrammar.getBinaryRules();
		List<UnaryRule> oldUnaryRules = oldGrammar.getUnaryRules();
		for (BinaryRule binaryRule : oldBinaryRules) {
			for (String newparent : splitMap.get(binaryRule.getParent())) {
				for (String newleft : splitMap.get(binaryRule.getLeftChild())) {
					for (String newright : splitMap.get(binaryRule
							.getRightChild())) {
						binaryRuleCounter.incrementCount(new BinaryRule(
								newparent, newleft, newright),
								binaryRule.getScore() / 8.0 * getRandom());
					}
				}
			}
		}
		for (UnaryRule unaryRule : oldUnaryRules) {
			for (String newparent : splitMap.get(unaryRule.getParent())) {
				for (String newchild : splitMap.get(unaryRule.getChild())) {
					// split the score
					unaryRuleCounter
							.incrementCount(new UnaryRule(newparent, newchild),
									unaryRule.getScore() / 4.0 * getRandom());
				}
			}
		}
		newGrammar = new Grammar(unaryRuleCounter, binaryRuleCounter, false);
	}