Процесс НЛП для объединения общих коллокаций

У меня есть корпус, в котором я использую пакет tm в R (а также зеркалирование того же скрипта в NLTK в python). Я работаю с униграммами, но хотел бы, чтобы какой-то синтаксический анализатор сочетал слова, которые обычно размещались так, как будто бы одно слово, т. Е. Я хотел бы перестать видеть «Нью» и «Йорк» отдельно в своем набор данных, когда они встречаются вместе, и увидеть эту пару, представленную как «Нью-Йорк», как если бы это было одно слово, и наряду с другими униграммами.

Как называется этот процесс, трансформировать осмысленные общие граммы на ту же основу, что и униграммы? Разве это не вещь? Наконец, как бы выглядел tm_map для этого?

mydata.corpus <- tm_map(mydata.corpus, fancyfunction)

И / или в python?

У меня недавно был аналогичный вопрос, и я играл с коллокациями

Это было решение, которое я выбрал для определения пар совпадающих слов:

 from nltk import word_tokenize from nltk.collocations import * text = <a long text read in as string string> tokenized_text = word_tokenize(text) bigram_measures = nltk.collocations.BigramAssocMeasures(tokenized_text) finder = BigramCollocationFinder.from_words() scored = finder.score_ngrams(bigram_measures.raw_freq) sorted(scored, key=lambda s: s[1], reverse=True)