Как Twitter определяет написание популярных хэштегов?

Я пытаюсь создать систему хэштегов, которая похожа на хэштеги Twitter для приложения. Однако я не могу понять, как писать такие теги, когда группирую разные варианты написания вместе.

Например, когда вы используете #abc в Twitter, могут быть разные варианты написания, такие как #abc, #Abc, #aBC и т. Д. Когда hastag имеет тенденцию, он отображается с определенным написанием в списке тенденций, например. #abC и группирует все разные версии.

Как определить «правильное» написание?


person Stefan Blamberg    schedule 27.08.2017    source источник
comment
Может случиться так, что хэштег с наибольшим количеством тегов будет принят как правильный, а другой вариант (по отношению к случаям) просто сложите число. Хотя я не уверен.   -  person Oasa    schedule 27.08.2017


Ответы (1)


Я только что построил систему хэштегов для своего приложения, и я еще не закончил с ней, но мой метод заключался в том, чтобы получать любые сообщения, в которых была строка # *. Затем проанализируйте это с помощью

GetHashes(t: string){    
var hashed = t.match(/#\w+/g);
if(hashed != null){
  hashed.forEach(element => {
    var unhashed = element.slice(0,0) + element.slice(1,element.length);
    this.hashTags.push(unhashed);
  });
}else{

}

}

Затем, когда у меня есть все хэши, я просто выполняю замену, чтобы перевести все в нижний регистр. Это то, что я отправляю в базу данных. Я использую Firebase, поэтому я денормализирую свои данные и дублирую их тонну, поэтому я сохраняю все содержимое сообщения под тегом в базе данных. Это может показаться большой тратой хранения данных, но хранение стоит дешево. Тогда мне не нужно внедрять поисковую систему типа «ElasticSearch» или «Algolia», что является дорогостоящим. (Мне все еще нужно для полнотекстового поиска, но не для хешей, сэкономив мне много денег).

Затем, когда я хочу вернуть все # *, я просто нахожу эту ссылку в базе данных Firebase и альт!

Что я не могу понять, так это как сделать мои ссылки на хэштеги, которые вызывают функцию динамически. Я использовал innerHtml, но это превращает все в строку.

Надеюсь, что это помогает немного.

person DKinnison    schedule 10.11.2017