Я хотел бы разбить строку, например:
Ввод: Bangalore railway line of the Indian Railway. It comes under Nagpur division of the Central Railway.
Выход:
Bangalore
railway
line
Indian Railway
comes
under
Nagpur
division
Central Railway
Обратите внимание, что составные существительные будут храниться вместе потому что они являются регистром заголовка.
У меня проблемы с частью регулярного выражения: split(/(?=\s[a-z]|[A-Z]\s|\.)/)
Как мне заставить его разделить на сценарий «вода 'Музей Tor»?
export function splitByPhrase(text: string) {
const outputFreq = text
.split(/(?=\s[a-z]|[A-Z]\s|\.)/)
.filter(Boolean)
.map((x) => x.replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g, "").trim())
.filter((x) => !stopWords.includes(x));
return outputFreq;
}
describe("phrases", () => {
it("no punctuation", () => {
expect(splitByPhrase("test. Toronto")).toEqual(["test", "Toronto"]);
});
it("no spaces", () => {
expect(splitByPhrase(" test Toronto ")).toEqual(["test", "Toronto"]);
});
it("simple phrase detection", () => {
expect(splitByPhrase(" water Tor Museum wants")).toEqual(["water", "Tor Museum", "wants"]);
});
it("remove stop words", () => {
expect(splitByPhrase("Toronto a Museum with")).toEqual(["Toronto", "Museum"]);
});
});