Я пытаюсь создать карту, которая проходит через все ngrams в документе и подсчитывает, как часто они появляются. Ngrams - это множества из n последовательных слов в предложении (так что в последнем предложении (Ngrams, are)) является 2-граммовым (are, sets) следующим 2-грамм и т. Д.). У меня уже есть код, который создает документ из файла и анализирует его в предложениях. У меня также есть функция, чтобы считать ngrams в предложении ngramsInSentence, который возвращает Seq [Ngram].Map word ngrams to counts scala
Я синтаксически зацикливаюсь на том, как создать карту подсчета. Я повторяю все ngrams в документе в цикле for, но не знаю, как сопоставить ngrams с подсчетом того, как часто они происходят. Я довольно новичок в Scala, и синтаксис уклоняется от меня, хотя я четко понимаю, что мне нужно!
def getNGramCounts(document: Document, n: Int): Counts = {
for (sentence <- document.sentences; ngram <- nGramsInSentence(sentence,n))
//I need code here to map ngram -> count how many times ngram appears in document
}
Тип COUNTS выше, а также Ngram, определяются как:
type Counts = Map[NGram, Double]
type NGram = Seq[String]
Кто-нибудь знает синтаксис для отображения на ngrams из цикл для подсчета того, как часто они происходят? Пожалуйста, дайте мне знать, если вы хотите получить более подробную информацию о проблеме.
Нижеприведенный ответ выглядит как способ, но возвращает карту [Nothing, Int] вместо Map [NGram, Double], у кого есть идеи? – user3297367