У меня есть такой файл ввода:
The Works of Shakespeare, by William Shakespeare
Language: English
, и я хочу использовать flatMap
с методом combinations
для получения пар KV на строку.
Эточто я делаю:
var pairs = input.flatMap{line =>
line.split("[\\s*$&#/\"'\\,.:;?!\\[\\(){}<>~\\-_]+")
.filter(_.matches("[A-Za-z]+"))
.combinations(2)
.toSeq
.map{ case array => array(0) -> array(1)}
}
Я получил 17 пар после этого, но пропустил 2 из них: (by,shakespeare)
и (william,shakespeare)
.Я думаю, что может быть что-то не так с последним словом первого предложения, но я не знаю, как это решить, кто-нибудь может мне сказать?