我想从200个单词的列表中创建一些排列 - 这显然会产生一个问题,因为这会导致一些可能的排列非常庞大(一个短语中最多5个单词).为了有效地限制这个数字,我有一个双管齐下的攻击:
这个概念的第二部分让我感到疑惑 - 我知道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排列的任何其他想法!这里的练习归结为有效地消除荒谬的排列,而无需手动分类/评分一切!
让我们说我有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的"横向"方法!
如何将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)
有帮助吗?
我有一个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) 现在我有这样的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)
有人有什么建议吗?我应该重新索引桌子吗?
希望增加Divi中谷歌地图模块的高度,但我的CSS代码不起作用,不明白为什么.我在地图模块的高级>自定义CSS>主要元素中粘贴以下代码
.et_pb_map {
height: 440px;
}
Run Code Online (Sandbox Code Playgroud)
任何建议都会非常有用!
我需要使用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,我看了很漂亮的汤,但对于我的生活,我不知道如何正确安装它(我非常蟒蛇绿色)!在我学习的过程中,任何解释也会非常感激.谢谢 :)
我有一个名为'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)
任何帮助将非常感激!
背景
我试图判断一个短语是否在语义上与使用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) 我有一个名为"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实现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 ×8
pandas ×7
python-3.x ×7
nltk ×3
dataframe ×2
css ×1
csv ×1
gensim ×1
linguistics ×1
regex ×1
statsmodels ×1
string ×1
substitution ×1
web-crawler ×1
wordpress ×1