如果您在 Chrome 中双击英文文本,则会突出显示您单击的以空格分隔的单词。这并不奇怪。然而,前几天我在阅读一些日语文本时点击并注意到一些单词在单词边界处突出显示,即使日语没有空格。这是一些示例文本:
?????????????????????????????????????????????????????? ???
例如,如果您单击 ???,即使它不是单个字符类(这是汉字和平假名的混合),Chrome 也会正确地将其突出显示为单个单词。并非所有的亮点都是正确的,但它们似乎不是随机的。
Chrome 如何决定在这里突出显示什么?我尝试在 Chrome 源代码中搜索“日语单词”,但只找到了一个实验模块的测试,该模块在我的 Chrome 版本中似乎并不活跃。
我正在尝试将 pyproject.toml 添加到一直使用 setup.py 的项目中,以便启用 pipx 的支持。我想指定项目包含在 pyproject.toml 中的命令行脚本,但我能找到的所有指南都给出了与诗歌一起使用的说明,而我没有使用诗歌。
我也不想指定模块的入口点 - 我已经有有效的命令行脚本,只想指定它们。
pyproject.toml 中是否有适当的位置来指定命令行脚本?
不确定这是否重要,但有问题的包裹是炸肉排。
Latent Dirichlet Allocation(LDA)是一个主题模型,用于查找一堆文档的潜在变量(主题).我正在使用python gensim包,有两个问题:
--- 1,我打印出每个主题最常用的单词(我试过10,20,50个主题),发现单词的分布非常"平淡":意思是即使是最常用的单词也只有1%可能性...
--- 2,大多数主题都是相似的:意味着每个主题的最常用单词重叠很多,主题分享几乎相同的高频词组...
我想问题可能是由于我的文档:我的文档实际上属于特定类别,例如,它们都是介绍不同在线游戏的文档.对于我的情况,LDA是否仍然有效,因为文件本身非常相似,所以基于"词袋"的模型可能不是一个好的尝试方法?
有人能给我一些建议吗?谢谢!
我正在使用gensim加载预训练的快速文本模型。我从fasttext 网站下载了受英语维基百科训练的模型。
这是我编写的用于加载预训练模型的代码:
from gensim.models import FastText as ft
model=ft.load_fasttext_format("wiki.en.bin")
Run Code Online (Sandbox Code Playgroud)
我尝试检查人声中是否包含以下短语(由于这些是经过预先训练的模型,因此这是极少的机会)。
print("internal executive" in model.wv.vocab)
print("internal executive" in model.wv)
False
True
Run Code Online (Sandbox Code Playgroud)
因此,词汇中不存在“内部主管”一词,但我们仍然有与此对应的词向量。
model.wv["internal executive"]
Out[46]:
array([ 0.0210917 , -0.15233646, -0.1173932 , -0.06210957, -0.07288644,
-0.06304111, 0.07833624, -0.17026938, -0.21922196, 0.01146349,
-0.13639058, 0.17283678, -0.09251394, -0.17875175, 0.01339212,
-0.26683623, 0.05487974, -0.11843193, -0.01982722, 0.37037706,
-0.24370994, 0.14269598, -0.16363597, 0.00328478, -0.16560239,
-0.1450972 , -0.24787527, -0.01318423, 0.03277111, 0.16175713,
-0.19367714, 0.16955379, 0.1972683 , 0.09044111, 0.01731548,
-0.0034324 , -0.04834719, 0.14321515, 0.01422525, -0.08803893,
-0.29411593, -0.1033244 , 0.06278021, 0.16452256, 0.0650492 ,
0.1506474 …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个 Flask 应用程序,它要求每个请求使用用户传递给应用程序的一些数据来初始化他们的会话。一旦他们传递了这些数据并初始化了会话,我想一遍又一遍地重用这些数据,直到他们的会话完成来填充请求,而不必为每个请求传递数据。
我似乎无法找出最好的方法来做到这一点。将它存储在会话变量中是行不通的,因为该数据只是被发送回用户,然后它与每次请求都传递它相同。将数据存储在数据库中似乎不是正确的选择,因为我需要在会话结束时将其丢弃,而且我没有看到任何装饰器可以在会话到期时实现......所以我担心我的数据库最终会填满来自初始化的所有这些数据,并且无法保证在会话结束时删除它们。
有什么建议?
我想对一些意大利语文本进行词素化,以便对单词进行频率计数,并对这种词素化内容的输出进行进一步调查。
我更喜欢使用词组比词干,因为我可以从句子中的上下文中提取单词含义(例如,区分动词和名词)并获取语言中存在的单词,而不是那些通常没有的单词的词根一个意义。
我发现这个名为pattern
(pip2 install pattern
)的库应该进行补充nltk
以执行意大利语的词素化,但是我不确定以下方法是否正确,因为每个单词都是由词素化的,而不是在句子的上下文中。
可能我应该pattern
负责将一个句子标记化(因此也要用有关动词/名词/形容词的元数据对每个单词进行注释),然后检索经过修饰的单词,但是我无法做到这一点,我甚至不确定是目前可能吗?
另外:在意大利语中,有些文章带有撇号,因此“ l'appartamento”(英语为“ the flat”)实际上是2个字:“ lo”和“ appartamento”。现在,我无法找到将组合在一起的两个单词分开的方法nltk
,pattern
因此无法以正确的方式计算单词的出现频率。
import nltk
import string
import pattern
# dictionary of Italian stop-words
it_stop_words = nltk.corpus.stopwords.words('italian')
# Snowball stemmer with rules for the Italian language
ita_stemmer = nltk.stem.snowball.ItalianStemmer()
# the following function is just to get the lemma
# out of the original input word (but right now
# it may be loosing the context about …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Spacy的日语标记器。
import spacy
Question= '????? ??????'
nlp(Question.decode('utf8'))
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,
TypeError: Expected unicode, got spacy.tokens.token.Token
Run Code Online (Sandbox Code Playgroud)
有想法该怎么解决这个吗?
谢谢!
我正在创建一个带有 gzipped 文件的 pip 包,并在第一次导入模块时将它们解压缩。我意识到这是不寻常的,并不是一个好主意,但考虑到我的限制,这似乎是传输数据的最佳方式。
我注意到的一个问题是,如果您通过 pip 卸载软件包,则不会删除提取的文件,并且 pip 会给出以下消息:
Would not remove (might be manually added):
file1
file2
Run Code Online (Sandbox Code Playgroud)
是否有什么地方setup.py
可以指定这些文件属于我的包并且应该在卸载时删除?
我有一个构建 Windows 轮子的 Github Action。在构建结束时,它会安装轮子以确保一切正常,但现在版本已硬编码在文件名中。我看到这个问题涉及发布,但我想在每次推送到 master 时运行它来检查一切是否正常。
现在我的操作中有一行看起来像这样:
pip install "fugashi-0.1.9rc1-cp${{ matrix.py-short }}-cp${{ matrix.py-short2 }}-win_amd64.whl"
Run Code Online (Sandbox Code Playgroud)
我不想每次版本更改时都更新操作,所以我希望该行看起来像这样:
pip install "fugashi-$VERSION-cp${{ matrix.py-short }}-cp${{ matrix.py-short2 }}-win_amd64.whl"
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将版本放入github操作的环境中。
有什么方法可以从环境变量中的 setup.py 获取作业的版本号吗?
如何使 spaCy 不区分大小写?
是否有任何我应该添加的代码片段或其他东西,因为我无法获取非大写的实体?
import spacy
import pandas as pd
from spacy.pipeline import EntityRuler
nlp = spacy.load('en_core_web_sm', disable = ['ner'])
ruler = nlp.add_pipe("entity_ruler")
flowers = ["rose", "tulip", "african daisy"]
for f in flowers:
ruler.add_patterns([{"label": "flower", "pattern": f}])
animals = ["cat", "dog", "artic fox"]
for a in animals:
ruler.add_patterns([{"label": "animal", "pattern": a}])
result={}
doc = nlp("CAT and Artic fox, plant african daisy")
for ent in doc.ents:
result[ent.label_]=ent.text
df = pd.DataFrame([result])
print(df)
Run Code Online (Sandbox Code Playgroud)