Scala 初学者在这里,我试图找到所有推文文本中至少包含关键字列表中的一个关键字 given.
其中一条推文:
case class Tweet(user: String, text: String, retweets: Int)
举个例子Tweet("user1", "apple apple", 3)
鉴于推文中的文字如果可以在推文文本中找到关键字列表中的至少一个关键字,则应返回 true。
我尝试像下面这样实现它:
def wordInTweet(tweet: Tweet, keywords: List[String]): Boolean = {
keywords.exists(tweet.text.equals(_))
}
但是,它也返回true如果推文的文本是music给定关键字的文本是musica.
我正在努力寻找一种仅在推文返回 true 的方法
包含完全相同的关键字文本。
我怎样才能实现这个目标?
提前致谢。
首先,如果您考虑keywords
作为一个集合,考虑到集合具有非常有效的belongs
功能。
keywords: Set[String]
然后我们需要测试推文中的每个单词,而不是完整的文本。这意味着我们需要将文本拆分为单词。我们随处都能找到这样的例子,比如无处不在的“wordCount”示例。
val wordsInTweet = tweet.text.split("\\W")
接下来,我们把事情放在一起:
def wordInTweet(tweet: Tweet, keywords: Set[String]): Boolean = {
val wordsInTweet = tweet.text.split("\\W")
wordsInTweet.exists(word => keywords.contains(word))
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)