我有一个变量sentences包含:“佩奇的网络爬虫于 1996 年 3 月开始探索网络,佩奇自己的斯坦福主页作为唯一的起点。为了将它为给定网页收集的反向链接数据转换为重要性的衡量标准,布林和佩奇开发了 PageRank算法。在分析 BackRub 的输出时,对于给定的 URL,该输出由按重要性排序的反向链接列表组成,两人意识到基于 PageRank 的搜索引擎会产生比现有技术更好的结果(当时现有的搜索引擎基本上根据搜索词在页面上出现的次数)。”然后,我在 Django HTML 中使用 truncatewords 来缩短句子的视图。{{ sentences|truncatewords:30 }}所以,结果显示:“Page 的网络爬虫于 1996 年 3 月开始探索网络,Page 自己的斯坦福主页作为唯一的起点。转换它......的反向链接数据。”实际上,我想truncatewords用一个特定的词来显示结果,例如“BackRub”,所以结果应该是:“在分析 BackRub 的输出时,对于给定的 URL,该输出包含按重要性排列的反向链接列表,两人意识到基于 PageRank 的搜索引擎会产生......”有什么解决办法吗?
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
我认为你应该编写自己的模板标签来解决这个问题。
您可以获得包含特定单词的句子的开头,并从那里开始返回字符串。然后你可以像上面那样截断结果。我相信这不是最好的解决方案。但我认为这是你可以开始的事情。请参阅下面的代码和结果:
模板标签中的某处
import re
from django import template
register = template.Library()
@register.filter
def findsentencebyword(sentence, word):
matches = re.search("([^.]*?" + word + ".*)", sentence)
if not matches:
return sentence
return matches.group()
然后在您的模板中加载并使用它,如下所示
{% load <templatetag> %}
{{ sentences|findsentencebyword:"BackRub"|truncatewords:30 }}
结果如下:
添加回答
举报
0/150
提交
取消