标签: tagging

一些NLP与Python中的语法,标记,词干和词义消歧有关

背景(TLDR;为完成而提供)

寻求针对奇怪要求的最佳解决方案的建议. 我是大学四年级的(文学)学生,只有我自己的编程指导.我对Python有足够的能力,我不会在实现我发现的解决方案(大部分时间)和开发它们时遇到麻烦,但是由于我的新意,我正在寻找有关解决这个特殊问题的最佳方法的建议.

已经使用NLTK,但与NLTK书中的示例不同.我已经在使用NLTK的很多东西了,特别是WordNet,所以这些材料对我来说并不陌生.我读过大部分的NLTK书.我更懂得如何处理,如果我试图分析现有的文本,或者目标文本是散文般的-但我的应用程序是专注于诗歌,特别是对即时构建诗意文本的基础上,不可预见的输入来自用户.

我正在使用零碎的原子语言.我的应用程序逐字移动:每轮,几个用户输入单词(每个用户一个单词).我的程序试图统一或组合这些输入词以产生单个输出词.我已经开发了字选择算法 - 它利用WordNet的各种功能来提出单字结果.结果是WordNet synset的形式 - 一个未反射的单词(剥离多个和紧张).结果被附加到"诗"的文本中(在一些空格之后).添加所产生的字会影响用户对什么词来扔进锅里下一个选择,那就是如何这个游戏/程序一起运动,在每次添加一个机器演变字的诗句.

问题:如何以语法合理的方式影响结果?没有任何语法处理,结果只是一个字典可搜索的单词列表,没有单词之间的协议.第一步是我的应用程序根据上下文来阻止/复数/共轭/变形根词.(我所说的"根词"是来自WordNet和/或其人类可读等同物的同义词.)想象一下,诗中已经有一些语法敏感的文本开始,我的应用程序需要反映一个新的结果 - 同意现有序列的词.如果它只是像一个3字的窗口或其他东西一样工作,这很好,但我正在寻找有关最佳操作顺序的建议.我希望有人可以给我一些指示(我希望它很难实现,但我想确保我从正确的想法开始).

示例场景(更少上下文更多问题)

让我们假设我们已经有了一首诗,用户正在向其中添加新的输入.新结果需要以语法合理的方式进行变换.

The river bears no empty bottles, sandwich papers,   
Silk handkerchiefs, cardboard boxes, cigarette ends  
Or other testimony of summer nights. The nymphs
Run Code Online (Sandbox Code Playgroud)

比方说,我的算法已经采取了一批从输入的用户,现在需要打印的4个可能接下来的话1 /同义集(非正式代表): ['departure', 'to have', 'blue', 'quick'].在我看来'blue'应该被抛弃; 'The nymphs blue'似乎语法奇怪/不太可能.从那里它可以使用这些动词中的任何一个.

如果它选择'to have'的结果可以被合理地活用为'had','have','having','will have','would have',等(但不包括'has').(由此产生的结果将是类似的'The nymphs have',明智的结果将为未来的结果提供更好的背景......)

'depature'在这种情况下,我希望成为一个有效的可能性; …

python tagging grammar nlp nltk

10
推荐指数
1
解决办法
2404
查看次数

LSA - 潜在语义分析 - 如何用PHP编写代码?

我想在PHP中实现潜在语义分析(LSA),以便找出文本的主题/标签.

以下是我认为我必须做的事情.它是否正确?如何在PHP中编写代码?如何确定要选择的单词?

我不想使用任何外部库.我已经实现了奇异值分解(SVD).

  1. 从给定文本中提取所有单词.
  2. 对单词/短语进行加权,例如使用tf-idf.如果加权太复杂,只需要考虑出现的次数.
  3. 构建矩阵:列是数据库中的一些文档(越多越好?),行都是唯一的单词,值是出现次数或权重.
  4. 做奇异值分解(SVD).
  5. 使用矩阵S(SVD)中的值进行降维(如何?).

我希望你能帮助我.非常感谢你提前!

php tagging linguistics lsa semantics

9
推荐指数
1
解决办法
6893
查看次数

让标记插件工作让我感到生气

我昨天花了所有时间试图让任何Rails标记插件工作.虽然安装很简单,但我不得不说如何使用这些插件的文档数量最多是令人沮丧的......

为了记录,我试过:

is_taggable acts_as_taggable_on acts_as_taggable_on_steroids acts_as_taggable_redux

在每个实例中,文档都包含以下内容:

  1. 安装
  2. undefined magic <---(这是我摔倒的地方,我在模型,视图和控制器中添加了什么才能使你的插件工作正常?请告诉我!)
  3. 看看所有这些很酷的功能!

有了所有的插件,我最终会处理如下错误:

NoMethodError in ItemsController#create undefined method `tag_list=' for #<Item:0x47fe848>
Run Code Online (Sandbox Code Playgroud)

我查看了各个插件网站上提出的问题,发现我绝对不是唯一一个有这些问题的人.但是,尽管大部分问题都是在一段时间内提出的,但作者的支持/解释并未即将出现.

我明白,如果我是某种Rails大师,我可能会让插件工作.但我不是.令我沮丧的是,我决定只推出自己的标记实现,这看起来很愚蠢,因为那里有很多用于标记的插件......

我还要说我有点担心大多数这些插件还没有维持一段时间.这让我想知道他们是否会被带到Rails 3.

如果有人知道Rails的标记插件真的有效并且易于实现,请告诉我(如果你能指出我一个体面的教程,我会给你我不朽的感激之情以及我发现的一些惊人的绒毛在我的口袋里然后......)

否则,请允许所有那些初学者/中级Rails程序员在那里制作和维护插件的Rails众神恳求......"我们热爱你的工作,但请提供更多文档!"

documentation plugins tagging ruby-on-rails

9
推荐指数
1
解决办法
934
查看次数

Rails 3按顺序排列has_many:通过

我有一个应用程序,我可以列出项目并为每个项目添加标签.模型标签关联如下:

class Item < ActiveRecord::Base
  has_many :taggings
  has_many :tags, :through => :taggings
end

class Tagging < ActiveRecord::Base
  belongs_to :item
  belongs_to :tag
end

class Tag < ActiveRecord::Base
  has_many :taggings
  has_many :items, :through => :taggings
end
Run Code Online (Sandbox Code Playgroud)

因此,这种多对多关系允许我为每个项目设置n个标签,并且可以多次使用相同的标签.

我想列出按此标签关联的项目数量排序的所有标签.更多使用的标签,首先显示.较少使用,最后.

我怎样才能做到这一点?

问候.

ruby tagging activerecord ruby-on-rails-3

9
推荐指数
1
解决办法
4936
查看次数

如何找到api网关阶段的arn?

我正在尝试使用awscli将标签添加到我的api网关阶段 https://docs.aws.amazon.com/cli/latest/reference/apigateway/tag-resource.html

我被要求提供--resource-arn舞台,但我无法确定这个价值.

我已经尝试使用awscli和控制台来确定这个值,但是无法找到api网关阶段的arn.我也尝试过基于arn模式/格式的猜测.

如何确定此值,或者此arn的格式是什么?

tagging amazon-web-services aws-cli aws-api-gateway

9
推荐指数
1
解决办法
5244
查看次数

如何为分区标记系统设计数据存储?

如何设计大型标签系统的数据存储(如digg或美味)?

已经讨论过它,但它是关于集中式数据库的.由于数据应该增长,我们需要很快或稍后将数据分区为多个分片.因此,问题变成:如何为分区标记系统设计数据存储?

标记系统基本上有3个表:

Item (item_id, item_content)

Tag (tag_id, tag_title)

TagMapping(map_id, tag_id, item_id)
Run Code Online (Sandbox Code Playgroud)

如果表存储在一个数据库实例中,那么找到给定标记的所有项并找到给定项的所有标记都可以.如果我们需要将数据分区为多个数据库实例,那就不那么容易了.

对于表,我们可以使用其键item_id对其内容进行分区.对于表Tag,我们可以使用其key_id对其内容进行分区.例如,我们希望将表Tag分区为K个数据库.我们可以简单地选择数字(tag_id%K)数据库来存储给定的标签.

但是,如何分区表TagMapping

TagMapping表代表了许多一对多的关系.我只能想象有重复.也就是说,TagMappping的相同内容有两个副本.一个用tag_id分区,另一个用item_id分区.在为给定项找到标签的场景中,我们使用带有tag_id的分区.如果要查找给定标记的项目,我们使用带有item_id的分区.

结果,存在数据冗余.并且,应用程序级别应该保持所有表的一致性.看起来很难.

有没有更好的解决方案来解决这个多对多的分区问题?

database tags tagging partitioning

8
推荐指数
1
解决办法
580
查看次数

项目组织使用Maven + Git

我们的团队目前正在从SVN迁移到Git.我们目前使用Maven作为构建工具.

目前,我们的项目通过Maven具有构建层次结构,但在文件层次结构/存储库方面是平的.我的目标是更紧密地匹配Maven构建层次结构和我们的存储库中的文件结构层次结构,以使一切更容易理解.

我的问题是创建Git repos的适当级别是什么,以便维护文件层次结构/组织?例:

  • 大项目 - (这里没有来源,只是一个pom)
    • 后端项目(来源+ pom)
    • 客户(这里没有来源,只是一个pom)
      • 控制台(源+ pom)
      • Web(来源+ pom)

因此,"仅限pom"项目将用于对实际源项目进行分组.但是Git回购属于哪里?一些团队成员担心Web项目的提交不属于Console项目的历史记录.但是如果Git repos处于最低级别(树的叶节点),我们将丢失文件结构组织(即使可以在Maven中维护构建层次结构).

编辑:团队成员的关注点与提交历史记录的关联程度不如使用标记.鉴于Git repo root位于Big Project,并且我想标记Web项目(通过标记Big Project),为什么该标记应包含Console项目,该项目可能与Web标记无关?

git tagging structure organization maven

8
推荐指数
1
解决办法
2741
查看次数

使用:tjump代替:按下ctrl-标签vim-]

在vim,
当我按下ctrl-]

1)通常的行为:
它转到第一个匹配的标签,光标下有单词,之后我们需要:tjump单独查看所有匹配标签的列表,然后跳转到所需的标签.

2)我想要的是:
vim应该搜索标签文件,
如果有多个匹配,
如果有一个匹配则显示所有匹配标签的列表,只需跳转到匹配的标签
(就像:tjump那样)

这种行为(2)在我们使用时已经发生了g-ctrl-],但我希望它发生在ctrl-]
我已经看到行为(2)ctrl-]在一些线索中的某些vims中使用.

请告诉我如何获得行为(2).换句话说,
请告诉我如何使用.vimrc或其他什么ctrl-]来表现g-ctrl-]

tags vim tagging ctags

8
推荐指数
1
解决办法
1865
查看次数

如何找到每个页面的所有标签,然后将标签连成一列?

如何找到每个页面的所有标签,然后将标签连成一列?

举个例子,

页表,

page_id 
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

标签表,

tag_id      tag_name
1           A
2           B
3           C
4           D
Run Code Online (Sandbox Code Playgroud)

标记表,

page_id     tag_id
1           1
1           2
1           3
3           2
3           3
Run Code Online (Sandbox Code Playgroud)

我的工作查询,

SELECT
    p.page_id,
    GROUP_CONCAT(t.tag_name ORDER BY t.tag_name ASC SEPARATOR ",") AS tags

FROM root_pages AS p

LEFT JOIN root_mm_pages_tags AS m
ON p.page_id = m.page_id

LEFT JOIN root_tags AS t
ON t.tag_id = m.tag_id

WHERE p.page_id = t.page_id
Run Code Online (Sandbox Code Playgroud)

这是我追求的结果,

page_id         tags
1               A, B, C
2               NULL
3 …
Run Code Online (Sandbox Code Playgroud)

php mysql tagging concat group-concat

8
推荐指数
1
解决办法
94
查看次数

使用MongoDB进行内容标记

我想使用MongoDB实现内容标记.在关系数据库中,最好的方法是在内容(例如"产品")和标签表之间建立多对多关系.但是NoSQL数据库的最佳方法是什么?

会是更好地把每一个标签在标签的"内容"文件的阵列,或者投入到引用标签中的字符串?

tagging database-design mongodb

7
推荐指数
1
解决办法
6873
查看次数