小编use*_*157的帖子

如何过滤单词排列只能找到语义正确的ngrams?(Python 3,NLTK)

我想从200个单词的列表中创建一些排列 - 这显然会产生一个问题,因为这会导致一些可能的排列非常庞大(一个短语中最多5个单词).为了有效地限制这个数字,我有一个双管齐下的攻击:

  1. 通过POS过滤器传递单词,以便只创建语言上合理的短语
  2. 过滤那些实际ngrams的排列 - 即具有高PMI /似然分数.

这个概念的第二部分让我感到疑惑 - 我知道NLTK提供了查找ngrams的能力,但我见过的每个例子都分析了一个语料库,这是有道理的,因为需要一个freqdist. 但是,是否有可能找到单词排列的PMI?

是否有可能根据自定义语料库中的常见搭配找到我的单词排列的PMI分数? 可以手动完成吗?

例如,虽然排列(啰嗦茶)在语言上是合理的,但它不是一个上下文好的排列.

我知道在一个文本/语料库中找到常见搭配的代码,但这是一个非常独特的问题,我希望有人可以给出一些建议.至少,帮助我解决这个问题!

**KW**
 Ball
 Bat
 Pinch
 Home
 Run
 Base
 Hitter
 Pitcher
 Call
 etc...
Run Code Online (Sandbox Code Playgroud)

更多背景:现在,可以从这个列表中进行一些排列,但只有少数几个实际上有意义.通过POS过滤器传递此列表允许我创建具有语言意义的关键词 - 但不是那些在语义上正确的关键词,即"Call Ball Hitter".这是我的努力,以某种方式基于某种评分标准(如PMI)创建语义正确的排列.现在我的想法是抓一个网站,即http://en.wikipedia.org/wiki/Baseball,在其中找到常见的ngrams,然后以某种方式判断基于该语料库的关键词排列的相对语义强度.但我正在努力将这一概念化,并且不确定它是否可能.但实际上,我很想听听有关如何有效地找到ngram排列的任何其他想法!这里的练习归结为有效地消除荒谬的排列,而无需手动分类/评分一切!

python linguistics nltk python-3.x

9
推荐指数
2
解决办法
1284
查看次数

如何将数据帧堆叠在一起(Pandas,Python3)

让我们说我有3只熊猫DF

DF1

 Words      Score
 The Man     2
 The Girl    4
Run Code Online (Sandbox Code Playgroud)

DF2

 Words2      Score2
The Boy       6
The Mother    7
Run Code Online (Sandbox Code Playgroud)

DF3

Words3       Score3
The Son        3
The Daughter   4
Run Code Online (Sandbox Code Playgroud)

现在,我将它们连接在一起,使它在一个DF中变成6列.这一切都很好,但我想知道,是否有一个pandas函数将它们垂直堆叠到两列并更改标题?

那么要做这样的事情?

Family Members     Score
The Man             2
The Girl            4
The Boy             6
The Mother          7
The Son             3
The Daughter        4
Run Code Online (Sandbox Code Playgroud)

我在这里阅读的所有内容http://pandas.pydata.org/pandas-docs/stable/merging.html似乎只有加入DF的"横向"方法!

python python-3.x pandas

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

将Pandas中的列转换为一个长字符串(Python 3)

如何将pandas列转换为一个长字符串?

例如,转换以下DF:

Keyword
James
Went
To
The
Market
Run Code Online (Sandbox Code Playgroud)

读为

Keyword
James went to the market
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

python string dataframe python-3.x pandas

7
推荐指数
2
解决办法
3659
查看次数

分隔特定列并将其添加为CSV格式的列(Python3,CSV)

我有一个csv文件,其中有几列我首先用冒号(;)分隔.但是,一列由管道分隔 我想分界这个专栏并创建新专栏.

输入:

  Column 1    Column 2      Column 3
     1           2          3|4|5
     6           7          6|7|8
     10          11         12|13|14
Run Code Online (Sandbox Code Playgroud)

期望的输出:

  Column 1   Column 2      ID    Age  Height
     1          2          3      4    5 
     6          7          6      7    8
     10         11         12     13   14
Run Code Online (Sandbox Code Playgroud)

我的代码到目前为止第一次划分; 然后转换为DF(这是我想要的结束格式)

delimit = list(csv.reader(open('test.csv', 'rt'), delimiter=';'))
df = pd.DataFrame(delimit)
Run Code Online (Sandbox Code Playgroud)

python csv python-3.x pandas

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

删除NaN'Cell'而不丢弃整个ROW(Pandas,Python3)

现在我有这样的DF

 Word       Word2          Word3
 Hello      NaN            NaN
 My         My Name        NaN
 Yellow     Yellow Bee     Yellow Bee Hive
 Golden     Golden Gates   NaN
 Yellow     NaN            NaN
Run Code Online (Sandbox Code Playgroud)

我希望的是从我的数据框中删除所有NaN细胞.所以最后,它看起来像这样,'Yellow Bee Hive'已经移动到第1行(类似于从excel中的列中删除单元格时发生的情况):

   Word       Word2             Word3
1  Hello      My Name        Yellow Bee Hive
2  My         Yellow Bee       
3  Yellow     Golden Gates             
4  Golden       
5  Yellow    
Run Code Online (Sandbox Code Playgroud)

不幸的是,这些都不起作用,因为他们删除了整条行!

 df = df[pd.notnull(df['Word','Word2','Word3'])]
Run Code Online (Sandbox Code Playgroud)

要么

 df = df.dropna() 
Run Code Online (Sandbox Code Playgroud)

有人有什么建议吗?我应该重新索引桌子吗?

python python-3.x pandas

6
推荐指数
1
解决办法
3291
查看次数

调整Divi中的地图高度

希望增加Divi中谷歌地图模块的高度,但我的CSS代码不起作用,不明白为什么.我在地图模块的高级>自定义CSS>主要元素中粘贴以下代码

.et_pb_map {
     height: 440px;
}
Run Code Online (Sandbox Code Playgroud)

任何建议都会非常有用!

css wordpress

5
推荐指数
1
解决办法
7127
查看次数

在Python 3中找到网站上最常见的单词

我需要使用Python 3代码找到并复制在给定网站上出现5次以上的单词,我不知道该怎么做.我已经查看了堆栈溢出的存档,但其他解决方案依赖于python 2代码.这是我到目前为止的可靠代码:

   from urllib.request import urlopen
   website = urllib.urlopen("http://en.wikipedia.org/wiki/Wolfgang_Amadeus_Mozart")
Run Code Online (Sandbox Code Playgroud)

有没有人对如何做有任何建议?我安装了NLTK,我看了很漂亮的汤,但对于我的生活,我不知道如何正确安装它(我非常蟒蛇绿色)!在我学习的过程中,任何解释也会非常感激.谢谢 :)

python beautifulsoup web-crawler nltk

4
推荐指数
1
解决办法
6384
查看次数

查找列表中的字符串中的最后一个单词(Pandas,Python 3)

我有一个名为'Stories'的DF看起来像这样:

Story
The Man
The Man Child
The Boy of Egypt
The Legend of Zelda
Run Code Online (Sandbox Code Playgroud)

有没有办法提取每个字符串中的最后一个单词?

就像是:

Stories['Prefix'] = final['Story'].str.extract(r'([^ ]*)') 
Run Code Online (Sandbox Code Playgroud)

找到前缀,但我不知道如何相应地调整它

我希望最终得到类似的东西

Story                  Suffix
The Word Of Man         Man
The Man of Legend       Legend
The Boy of Egypt        Egypt
The Legend of Zelda     Zelda
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

python-3.x pandas

4
推荐指数
1
解决办法
5906
查看次数

使用GenSim的短语之间的语义相似性

背景

我试图判断一个短语是否在语义上与使用Gensim在语料库中找到的其他单词相关.例如,这里是预先标记化的语料库文档:

 **Corpus**
 Car Insurance
 Car Insurance Coverage
 Auto Insurance
 Best Insurance
 How much is car insurance
 Best auto coverage
 Auto policy
 Car Policy Insurance
Run Code Online (Sandbox Code Playgroud)

我的代码(基于此gensim教程)使用余弦相似性对语料库中的所有字符串判断短语的语义相关性.

问题

似乎如果查询包含在我的字典中找到的任何术语,则该短语被判断为在语义上与语料库相似(例如**长颈鹿Poop Car Murderer具有1的余弦相似性,但应该在语义上不相关).我不知道如何解决这个问题.

#Tokenize Corpus and filter out anything that is a stop word or has a frequency <1
texts = [[word for word in document if word not in stoplist]
        for document in documents]
from collections import defaultdict
frequency = defaultdict(int)
for text in texts:
    for token in text: …
Run Code Online (Sandbox Code Playgroud)

nltk python-3.x gensim

4
推荐指数
1
解决办法
5824
查看次数

如何在DataFrame的字符串列中应用正则表达式替换?

我有一个名为"Animals"的DataFrame,如下所示:

 Words
 The Black Cat
 The Red Dog
Run Code Online (Sandbox Code Playgroud)

我想在每个单词前添加一个加号,使它看起来像这样:

 Words
 +The +Black +Cat
 +The +Red +Dog
Run Code Online (Sandbox Code Playgroud)

我使用正则表达式尝试了这个但它不起作用:

 df = re.sub(r'([a-z]+)', r'+\1', Animals)
Run Code Online (Sandbox Code Playgroud)

python regex substitution dataframe pandas

4
推荐指数
1
解决办法
1949
查看次数

使用OLS回归预测未来值(Python,StatsModels,Pandas)

我目前正在尝试用Python实现MLR,并且我不确定如何将我发现的系数应用于未来的值.

import pandas as pd
import statsmodels.formula.api as sm
import statsmodels.api as sm2

TV = [230.1, 44.5, 17.2, 151.5, 180.8]
Radio = [37.8,39.3,45.9,41.3,10.8]
Newspaper = [69.2,45.1,69.3,58.5,58.4]
Sales = [22.1, 10.4, 9.3, 18.5,12.9]
df = pd.DataFrame({'TV': TV, 
                   'Radio': Radio, 
                   'Newspaper': Newspaper, 
                   'Sales': Sales})

Y = df.Sales
X = df[['TV','Radio','Newspaper']]
X = sm2.add_constant(X)
model = sm.OLS(Y, X).fit()
>>> model.params
const       -0.141990
TV           0.070544
Radio        0.239617
Newspaper   -0.040178
dtype: float64
Run Code Online (Sandbox Code Playgroud)

所以,假设我想预测以下DataFrame的"sales":

EDIT

TV     Radio    Newspaper    Sales
230.1  37,8       69.2       22.4
44.5   39.3       45.1 …
Run Code Online (Sandbox Code Playgroud)

python pandas statsmodels

2
推荐指数
1
解决办法
4239
查看次数