首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找Django TextField中的大量关键字

如何查找Django TextField中的大量关键字
EN

Stack Overflow用户
提问于 2011-07-04 04:50:55
回答 1查看 300关注 0票数 2

假设我有以下模型:

代码语言:javascript
复制
class NamedEntity(models.Model):
    name = models.CharField(max_length=100)
    NE_CHOICES = (
        ('PER', 'Person'),
        ('TTL', 'Title / Role'),
        ('ORG', 'Organization'),
        ('LOC', 'Location')
    )
    ne_type = models.CharField(max_length=30, choices=NE_CHOICES)

class Document(models.Model):
    content = models.TextField()
    entities = models.ManyToManyField(NamedEntity)

    def find_entities(self):
        ## First locate user entities
        ## Locate general Named Entities
        print "Finding entities..."

假设数据库中大约有一千个命名实体。索引/搜索文档的内容字段、查找整个命名实体列表的所有可能实例作为文档模型的一种方法的最佳方式是什么?

示例数据:

Document.content字段可能包含以下字符串:

代码语言:javascript
复制
"Hey Joe,

I wanted to see if you and Cassy might be interested in going to Franky's on friday night.

-Fred"

NamedEntities的完整表格将包含如下所示的.name字段条目:

代码语言:javascript
复制
"Mark"
"Peter"
"Franky's"
"Seattle"
"Fred"
"Amber"
"Joe"
...assuming a couple thousand entries.

我希望在Document.content字段中找到这些NamedEntity.name值的所有可能实例。就我希望结果的外观而言,我可以使用原始字符串的标记版本:

代码语言:javascript
复制
"Hey \(NE/01254)Joe,

I wanted to see if you and \(NE/01942)Cassy might be interested in going to \(NE/02223)Franky's on friday night.

-\(NE/023432)Fred"

或字符串索引的字典:

代码语言:javascript
复制
{ 01254 : (4,6),
  01942 : (33, 37),
  02223 : ... } 
EN

回答 1

Stack Overflow用户

发布于 2011-07-07 11:11:56

根据我的理解,我的想法如下:

  • 从内容字段中获取数据
  • 将数据拆分为不同的单词,这将为您提供单词数组。
  • 可以将相似的单词分组-可以使用字典:{'mary':5,'mark':count}
  • 或使用python的列表数据删除重复的单词structure
  • You可以删除您确信不是有效名称的单词

<代码>H113搜索以查看数据库中是否存在任何单词<代码>H214<代码>F215

我假设您已经考虑过对NamedEntity.name字段进行索引。

如果单词列表很小,则使用或语句似乎是在数据库中搜索姓名的最佳选择。但是,我不确定语句的大小有多大。此外,我不知道内容字段会有多大。

如果TextField有比数据库更多的唯一词,这可能不是最好的方法。

希望我的理解是正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6565482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档