Questions tagged «nlp»

自然语言处理(NLP)是计算机科学,人工智能和语言学领域中与计算机和人类(自然)语言之间的交互相关的领域。因此,自然语言处理与人机交互领域有关。NLP中的许多挑战涉及自然语言理解,即使计算机能够从人类或自然语言输入中获取含义,而其他挑战则涉及自然语言生成。

4
比较不同格式的文档时,TF-IDF和余弦相似度的替代方法
我一直在从事一个小型的个人项目,该项目需要用户的工作技能,并根据这些技能为他们建议最理想的职业。我使用工作清单数据库来实现这一目标。目前,代码的工作方式如下: 1)处理每个职位清单的文本以提取清单中提到的技能 2)对于每个职业(例如“数据分析师”),将针对该职业的工作清单的处理后的文本合并到一个文档中 3)计算职业文件中每种技能的TF-IDF 之后,我不确定应该使用哪种方法根据用户的技能列表对职业进行排名。我见过的最流行的方法是将用户的技能也视为文档,然后计算技能文档的TF-IDF,并使用余弦相似度来计算技能文档与每个文档之间的相似度。职业文件。 这对我来说似乎不是理想的解决方案,因为在比较两个相同格式的文档时,最好使用余弦相似度。因此,TF-IDF似乎根本不适合应用于用户的技能列表。例如,如果用户将其他技能添加到他们的列表中,则每个技能的TF都会下降。实际上,我不在乎用户技能列表中技能的频率是多少—我只是在乎他们是否拥有这些技能(也许他们对这些技能的了解程度如何)。 似乎更好的指标是执行以下操作: 1)对于用户拥有的每种技能,请在职业文档中计算该技能的TF-IDF 2)对于每个职业,将所有用户技能的TF-IDF结果相加 3)根据上述总和来排名职业 我在想这里的正确方法吗?如果是这样,是否有任何算法可以沿这条线运行,但比简单的总和还要复杂?谢谢您的帮助!

3
高效的数据库模型,用于存储由n-gram索引的数据
我正在开发一个应用程序,该应用程序需要创建一个存在于大型文本语料库中的非常大的n-gram数据库。 我需要三种有效的操作类型:由n-gram本身索引的查找和插入,以及查询包含子n-gram的所有n-gram。 在我看来,数据库应该是一个巨大的文档树,而文档数据库(例如Mongo)应该能够很好地完成工作,但是我从来没有大规模使用过。 了解Stack Exchange问​​题格式后,我想澄清的是,我并不是在寻求有关特定技术的建议,而是要寻求大规模实施此类数据库的一种类型的数据库。
12 nlp  databases 

3
有关NLTK中的NER的帮助
我使用NLTK已有一段时间了。我面临的问题是,使用我的自定义数据对NLTK中的NER进行培训没有帮助。他们使用了MaxEnt并在ACE语料库上对其进行了培训。我在网上进行了很多搜索,但是找不到用于训练NLTK NER的任何方法。 如果有人可以向我提供任何链接/文章/博客等信息,这些链接/文章/博客等都可以将我定向到用于培训NLTK NER的培训数据集格式,那么我可以按照该特定格式准备数据集。并且,如果我被定向到可以帮助我训练自己的数据的NLNL的NER的任何链接/文章/博客等。 这是一个被广泛搜索且回答最少的问题。对于将来与NER合作的人可能会有所帮助。

1
我应该使用多少个LSTM细胞?
是否有关于我应使用的LSTM电池的最小,最大和“合理”数量的经验法则(或实际规则)?具体来说,我与TensorFlow和property 有关的BasicLSTMCell有关num_units。 请假设我有以下定义的分类问题: t - number of time steps n - length of input vector in each time step m - length of output vector (number of classes) i - number of training examples 例如,训练示例的数量应该大于: 4*((n+1)*m + m*m)*c c单元数在哪里?我基于此:如何计算LSTM网络的参数数量?据我了解,这应该给出参数的总数,该总数应少于训练示例的数量。
12 rnn  machine-learning  r  predictive-modeling  random-forest  python  language-model  sentiment-analysis  encoding  machine-learning  deep-learning  neural-network  dataset  caffe  classification  xgboost  multiclass-classification  unbalanced-classes  time-series  descriptive-statistics  python  r  clustering  machine-learning  python  deep-learning  tensorflow  machine-learning  python  predictive-modeling  probability  scikit-learn  svm  machine-learning  python  classification  gradient-descent  regression  research  python  neural-network  deep-learning  convnet  keras  python  tensorflow  machine-learning  deep-learning  tensorflow  python  r  bigdata  visualization  rstudio  pandas  pyspark  dataset  time-series  multilabel-classification  machine-learning  neural-network  ensemble-modeling  kaggle  machine-learning  linear-regression  cnn  convnet  machine-learning  tensorflow  association-rules  machine-learning  predictive-modeling  training  model-selection  neural-network  keras  deep-learning  deep-learning  convnet  image-classification  predictive-modeling  prediction  machine-learning  python  classification  predictive-modeling  scikit-learn  machine-learning  python  random-forest  sampling  training  recommender-system  books  python  neural-network  nlp  deep-learning  tensorflow  python  matlab  information-retrieval  search  search-engine  deep-learning  convnet  keras  machine-learning  python  cross-validation  sampling  machine-learning 

3
是否有适用于python的好的即用型语言模型?
我正在为一个应用程序制作原型,我需要一个语言模型来计算一些生成的句子的困惑度。 我可以随时使用经过训练的python语言模型吗?简单的东西 model = LanguageModel('en') p1 = model.perplexity('This is a well constructed sentence') p2 = model.perplexity('Bunny lamp robert junior pancake') assert p1 < p2 我看过一些框架,但找不到我想要的。我知道我可以使用类似: from nltk.model.ngram import NgramModel lm = NgramModel(3, brown.words(categories='news')) 这在Brown Corpus上使用了很好的图林概率分布,但是我正在一些大型数据集(例如1b单词数据集)上寻找精心设计的模型。我可以真正相信一般领域的结果(不仅是新闻)
11 python  nlp  language-model  r  statistics  linear-regression  machine-learning  classification  random-forest  xgboost  python  sampling  data-mining  orange  predictive-modeling  recommender-system  statistics  dimensionality-reduction  pca  machine-learning  python  deep-learning  keras  reinforcement-learning  neural-network  image-classification  r  dplyr  deep-learning  keras  tensorflow  lstm  dropout  machine-learning  sampling  categorical-data  data-imputation  machine-learning  deep-learning  machine-learning-model  dropout  deep-network  pandas  data-cleaning  data-science-model  aggregation  python  neural-network  reinforcement-learning  policy-gradients  r  dataframe  dataset  statistics  prediction  forecasting  r  k-means  python  scikit-learn  labels  python  orange  cloud-computing  machine-learning  neural-network  deep-learning  rnn  recurrent-neural-net  logistic-regression  missing-data  deep-learning  autoencoder  apache-hadoop  time-series  data  preprocessing  classification  predictive-modeling  time-series  machine-learning  python  feature-selection  autoencoder  deep-learning  keras  tensorflow  lstm  word-embeddings  predictive-modeling  prediction  machine-learning-model  machine-learning  classification  binary  theory  machine-learning  neural-network  time-series  lstm  rnn  neural-network  deep-learning  keras  tensorflow  convnet  computer-vision 

4
从句子中提取信息
我正在创建一个简单的聊天机器人。我想从用户响应中获取信息。一个示例场景: Bot : Hi, what is your name? User: My name is Edwin. 我希望从句子中提取出埃德温的名字。但是,用户可以通过不同的方式进行响应,例如 User: Edwin is my name. User: I am Edwin. User: Edwin. 我试图依靠单词之间的依赖关系,但结果效果不佳。 关于可以使用哪种技术来解决此问题的任何想法? [更新] 我使用命名实体识别以及部分语音标记器和解析器进行了测试。我发现大多数模型都是以某种方式训练的,即人名或专有名词的实体的第一个字符必须为大写。这对于普通文档可能是正确的,但是对于聊天机器人则无关紧要。例如 User: my name is edwin. 大多数NER未能意识到这一点。
11 python  nlp 

2
“意图识别器”如何工作?
亚马逊的Alexa,Nuance的Mix和Facebook的Wit.ai都使用类似的系统来指定如何将文本命令转换为意图,即计算机可以理解的东西。我不确定这的“正式”名称是什么,但我称其为“意图识别”。基本上是从“请将灯光设置为50%亮度”到的一种方法lights.setBrightness(0.50)。 指定方法的方式是,让开发人员提供与意图相关的“样本话语”列表,并可选地标记“实体”(基本参数)的位置。这是Wit.ai的示例: 我的问题是:这些系统如何工作?由于它们都非常相似,因此我认为它们都有一些开创性的成果。有谁知道它是什么? 有趣的是,Houndify使用了一个更类似于正则表达式的系统["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]。我认为这已集成到他们语音识别系统的波束搜索中,而Alexa,Wit.ai和Mix似乎具有单独的“语音”->“文本”和“文本-> Intent”系统。 编辑:我找到了一个起点- 一种通过非正式语音命令进行人机交互的机制。它使用一种称为“潜在语义分析”的方法来比较话语。我将继续阅读。至少它为我提供了引文网络的起点。 编辑2: LSA本质上是比较文本每一段中使用的单词(单词袋)。我看不到它在这种情况下如何很好地工作,因为它完全失去了单词顺序。尽管对于这些类型的命令来说,单词顺序并不重要。 编辑3: 隐藏主题马尔可夫模型看起来可能很有趣。

1
如何确定字符序列是英文单词还是杂音
您将尝试从单词列表中提取什么样的功能以供将来预测,是现有单词还是仅是字符混乱? 我在那儿找到了对任务的描述。 您必须编写一个程序来回答给定单词是否为英语。这很容易-您只需要在词典中查找单词-但有一个重要限制:您的程序不得大于64 KiB。 因此,我认为可以使用逻辑回归来解决问题。我没有大量的数据挖掘经验,但是这项任务对我来说很有趣。 谢谢。


1
在小文本文件上应用word2vec
我是word2vec的新手,请耐心等待。我有一组文本文件,每个文件包含一组1000-3000之间的推文。我选择了一个通用关键字(“ kw1”),并希望使用word2vec查找与“ kw1”语义相关的术语。例如,如果关键字是“ apple”,我希望基于输入文件看到相关的术语,例如“ ipad”,“ os”,“ mac”...。因此,对于每个输入文件,这组与“ kw1”相关的术语会有所不同,因为word2vec将在单个文件上进行训练(例如,5个输入文件,在每个文件上运行word2vec 5次)。 我的目标是在给定公共关键字(“ kw1”)的情况下,为每个输入文件查找相关术语集,该关键字将用于其他目的。 我的问题/疑问是: 将word2vec用于此类任务是否有意义?考虑到输入文件的大小,使用它在技术上是否正确? 我已经从code.google.com下载了代码:https : //code.google.com/p/word2vec/,并进行了如下尝试: time ./word2vec -train $file -output vectors.bin -cbow 1 -size 200 -window 10 -negative 25 -hs 1 -sample 1e-3 -threads 12 -binary 1 -iter 50 ./distance vectors.bin 从结果中可以看出,当我使用“距离”工具获取与“ kw1”相关的术语时,收到了很多嘈杂的术语(停用词)。因此,我确实删除了停用词和其他嘈杂的用语,例如用户提及。但是我还没有看到word2vec需要清除输入数据的地方...? 您如何选择正确的参数?当我更改“ -window”,“-iter”等参数时,我看到的结果(运行距离工具)有很大不同。我应该使用哪种技术来找到参数的正确值。(由于我将按比例放大数据集,因此对我来说,人工尝试和错误是不可能的)。

3
哈希向量化器和tfidf向量化器有什么区别
我正在将文本文档的语料库转换为每个文档的单词向量。我已经尝试过使用TfidfVectorizer和HashingVectorizer 我了解a 不像a 那样HashingVectorizer考虑IDF分数TfidfVectorizer。我仍然使用a的原因HashingVectorizer是它在处理庞大数据集时具有的灵活性,如此处和此处所述。(我的原始数据集有3000万个文档) 目前,我正在处理45339个文档的样本,因此,我TfidfVectorizer也可以使用。当我在相同的45339文档上使用这两个矢量化器时,得到的矩阵是不同的。 hashing = HashingVectorizer() with LSM('corpus.db')) as corpus: hashing_matrix = hashing.fit_transform(corpus) print(hashing_matrix.shape) 哈希矩阵形状(45339,1048576) tfidf = TfidfVectorizer() with LSM('corpus.db')) as corpus: tfidf_matrix = tfidf.fit_transform(corpus) print(tfidf_matrix.shape) tfidf矩阵形状(45339,663307) 我想更好地理解a HashingVectorizer和a 之间的区别TfidfVectorizer,以及这些矩阵大小不同的原因-尤其是单词/术语的数量。

3
NER的无监督功能学习
我已经利用CRF算法实现了NER系统,其手工制作的功能给出了很好的结果。问题是我使用了许多不同的功能,包括POS标签和引理。 现在,我想针对不同的语言制作相同的NER。这里的问题是我不能使用POS标签和引理。我开始阅读有关深度学习和无监督特征学习的文章。 我的问题是: 是否可以使用CRF算法进行无监督特征学习的方法?有没有人尝试过并获得良好的结果?是否有任何有关此问题的文章或教程? 我仍然不完全了解这种功能创建方式,因此,我不想花很多时间来解决不起作用的问题。因此,任何信息都将真正有帮助。现在,基于深度学习创建整个NER系统还有些困难。

3
如何处理自然语言查询?
我对自然语言查询很好奇。斯坦福拥有强大的处理自然语言的软件。我还看到了Apache OpenNLP库和文本工程的通用体系结构。 自然语言处理的用途非常多,这使得这些项目的文档难以快速吸收。 您能为我简化一下吗,并概括性地概述执行将简单问题基本转换为SQL所需的任务吗? 我的流程图中的第一个矩形有点神秘。 例如,我可能想知道: How many books were sold last month? 我希望将其翻译成 Select count(*) from sales where item_type='book' and sales_date >= '5/1/2014' and sales_date <= '5/31/2014'
11 nlp 

3
最佳科学计算语言[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 似乎大多数语言都具有一定数量的科学计算库。 Python有 Scipy Rust 有 SciRust C++有几个包括ViennaCL和Armadillo Java具有Java Numerics和Colt其他几个 且不说像语言R和Julia明确的科学计算而设计。 有这么多种选择,您如何选择适合任务的最佳语言?另外,哪种语言的性能最高?Python并且R似乎在该领域具有最大的吸引力,但从逻辑上讲,编译语言似乎是一个更好的选择。会有什么表现胜过Fortran?此外编译语言往往有GPU加速,而解释性语言如R并Python没有。选择一种语言时应该考虑什么?哪些语言可以在效用和性能之间取得最佳平衡?还有我错过的具有重要科学计算资源的语言吗?
10 efficiency  statistics  tools  knowledge-base  machine-learning  neural-network  deep-learning  optimization  hyperparameter  machine-learning  time-series  categorical-data  logistic-regression  python  visualization  bigdata  efficiency  classification  binary  svm  random-forest  logistic-regression  data-mining  sql  experiments  bigdata  efficiency  performance  scalability  distributed  bigdata  nlp  statistics  education  knowledge-base  definitions  machine-learning  recommender-system  evaluation  efficiency  algorithms  parameter  efficiency  scalability  sql  statistics  visualization  knowledge-base  education  machine-learning  r  python  r  text-mining  sentiment-analysis  machine-learning  machine-learning  python  neural-network  statistics  reference-request  machine-learning  data-mining  python  classification  data-mining  bigdata  usecase  apache-hadoop  map-reduce  aws  education  feature-selection  machine-learning  machine-learning  sports  data-formats  hierarchical-data-format  bigdata  apache-hadoop  bigdata  apache-hadoop  python  visualization  knowledge-base  classification  confusion-matrix  accuracy  bigdata  apache-hadoop  bigdata  efficiency  apache-hadoop  distributed  machine-translation  nlp  metadata  data-cleaning  text-mining  python  pandas  machine-learning  python  pandas  scikit-learn  bigdata  machine-learning  databases  clustering  data-mining  recommender-system 

3
Word2Vec和Doc2Vec是分布式表示还是分布式表示?
我已经读过分布表示法是基于分布假设的,即在相似上下文中出现的单词往往具有相似的含义。 Word2Vec和Doc2Vec都根据此假设建模。但是,在原始论文中,即使它们的标题也为Distributed representation of words and phrases和Distributed representation of sentences and documents。因此,这些算法是基于分布表示还是分布式表示。 其他模型(例如LDA和LSA)如何?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.