【问题标题】:Removing unwanted words from tweets从推文中删除不需要的单词
【发布时间】:2015-11-30 04:23:07
【问题描述】:

我正在创建一个网页,以在词云中显示最新推文中出现频率最高的词。它基于nodejs + html。

我正在从我的 server.js 文件中获取推文,并将文本格式的单词推送到我的 html 页面。

我的 HTML 代码:

<script>
var data, twArr;
var data = document.getElementById('data').innerHTML;           
data = data.toLowerCase().replace(/object Object/g, '').replace(/[\+\.,\/#!$%@\^&\*{}=:;_`~]/g,'');
data = data.replace(/[0-9]+/g, "");
var twArr = data.split(' ');

<< then I pass twArr to my cloud code>>
</script>
<body>
 <p id="data">
        {{data}}
 </p>
</body>

使用此代码,它会显示所有垃圾词,如 urls(https:...) 和没有意义的词,以及常见的词,如 to、if、is、of 等......

知道如何删除所有这些垃圾并只使用有效的单词吗?谢谢。

【问题讨论】:

  • 您的问题不包含任何 D3 或 node.js 代码,也不包含任何创建词云的内容。您的问题似乎与这些标签中的任何内容无关,因此请不要添加它们。

标签: javascript twitter


【解决方案1】:

您可以制作列入黑名单的单词的过滤列表。您已经获得了每条推文的单词列表(在 twArr 中)。只需根据您的过滤器列表过滤单词,然后再发送它们以查看。您可以从this question 寻求帮助

【讨论】:

  • 你能解释一下我该怎么做吗?我试过这样: data = data.replace(/https*/g, "");但这只是删除了 https 并保留了推文中 url 的其余部分。谢谢。
【解决方案2】:

您可以列出这样多个单词,然后将它们放在一起

  1. 您需要创建要替换的单词列表,例如 http,if,else
  2. 将该列表应用于您的数据

例如

var data= "Some words will be empty string now like http if but not https  else will be same.";

var mapObj = {
   http:"",
   if:"",
   else:""

};
data= data.replace(/http|if|else\b/, function(matched){
  return mapObj[matched];
});

console.log(data);

【讨论】:

  • 感谢您的回复。我试过你的代码,它只从一个词中删除了那个词。例如,将“to”添加到该列表中,从明天删除“to”并仅显示“morrow”。我不想从有效单词中删除那些。而是只想删除到,例如。另外,知道如何停止重复的单词吗?我想在云中看到它们一次,而不是多次看到它们。请指教。谢谢。
  • @Sweet 尝试更新代码,它现在将删除单词的完全匹配,并且不会从明天的单词中删除
  • 感谢您的回复。但是我仍然看到所有以https开头的单词......如何删除所有以 https 开头的单词?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-03
  • 1970-01-01
相关资源
最近更新 更多