我有两个清单:
a = [0, 0, 0, 1, 1, 1, 1, 1, .... 99999]
b = [24, 53, 88, 32, 45, 24, 88, 53, ...... 1]
Run Code Online (Sandbox Code Playgroud)
我想将这两个列表合并到一个字典中,如:
{
0: [24, 53, 88],
1: [32, 45, 24, 88, 53],
......
99999: [1]
}
Run Code Online (Sandbox Code Playgroud)
一个解决方案可能是使用for循环,它看起来不太优雅,如:
d = {}
unique_a = list(set(list_a))
for i in range(len(list_a)):
if list_a[i] in d.keys:
d[list_a[i]].append(list_b[i])
else:
d[list_a] = [list_b[i]]
Run Code Online (Sandbox Code Playgroud)
虽然这确实有效,但它效率很低,而且当列表非常大时会占用太多时间.我想知道更优雅的方法来构建这样的字典吗?
提前致谢!
我正在寻找有关使用 Bert 和 Bert 的屏蔽语言模型来预测多个标记的建议。
我的数据看起来像:
语境: some very long context paragraph
问题:rainy days lead to @placeholder这个问题的答案@placeholder是wet weather。在模型中,wet environment是要预测的答案。
那么在预处理阶段,我应该将文本更改为rainy days lead to [MASK]或类似的内容rainy days lead to [MASK] [MASK]吗?我知道 masked LM 在单个 token 预测上效果很好,你认为 masked LM 可以在多个 token 预测上很好地工作吗?如果没有,您对如何预处理和训练此类数据有什么建议吗?
非常感谢!
我有一些关于使用转换器包加载 SpanBert 的问题。
我从SpanBert GitHub Repo 和vocab.txtBert下载了预训练文件。这是我用于加载的代码:
model = BertModel.from_pretrained(config_file=config_file,
pretrained_model_name_or_path=model_file,
vocab_file=vocab_file)
model.to("cuda")
Run Code Online (Sandbox Code Playgroud)
在哪里
config_file -> config.jsonmodel_file -> pytorch_model.binvocab_file -> vocab.txt但我得到了UnicodeDecoderError上面的代码说'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
我还尝试使用此处提到的方法加载 SpanBert 。但它回来了OSError: file SpanBERT/spanbert-base-cased not found。
您对正确加载预训练模型有什么建议吗?任何建议都非常感谢。谢谢!
我对这个问题有一个非常类似的问题,但我的情况比较复杂.
这是我的示例代码:
test = data.frame(x = c(1:4),
y = c("/abc/werts/h1-1234", "/abc/fghye/seths/h2-234",
"/abc/gvawrttd/hyeadar/h3-9868", "/abc/qqras/x1-7653"))
test$y = as.character(test$y)
Run Code Online (Sandbox Code Playgroud)
我想要一个像这样的输出:
1 h1-1234
2 h2-234
3 h3-9868
4 x1-7653
Run Code Online (Sandbox Code Playgroud)
我试过了:
test$y = tail(unlist(strsplit(test$y, "/")), 1)
Run Code Online (Sandbox Code Playgroud)
但是,返回上述代码的结果:
1 h1-1234
2 h1-1234
3 h1-1234
4 h1-1234
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何修改我的代码以便我可以得到我想要的输出?
提前致谢!
我有一个问题困扰了我很长一段时间:我应该如何删除以问号开头的模式?
例如:
## dataframe named test
x y
1 gffsd?lang=dfs
2 sdldfsd?lang=gsd
3 eoriwesd?lang=fh
4 eriywo?lang=asd
Run Code Online (Sandbox Code Playgroud)
我想要的是:
x y
1 gffsd
2 sdldfsd
3 eoriwesd
4 eriywo
Run Code Online (Sandbox Code Playgroud)
我尝试了几种方法,包括:
test$y = sapply(strsplit(test$y, '?'), head, 1)
test$y = sapply(strsplit(test$y, '?lang='), head, 1)
gsub("?",NA, test$y, fixed = TRUE)
Run Code Online (Sandbox Code Playgroud)
不幸的是,他们都失败了.
提前致谢!
BTW,任何人都知道如何将"®"替换为" - "
我在 AWS 上连接 jupyter 笔记本时遇到问题。我尝试了几种解决方案,包括从任何IP设置端口8888的安全组规则,设置配置文件如下:
\n\nc = get_config()\n\n# Notebook config this is where you saved your pem cert\nc.NotebookApp.certfile = u'/home/ubuntu/certs/mycert.pem' \n# Run on all IP addresses of your instance\nc.NotebookApp.ip = '*'\n# Don't open browser by default\nc.NotebookApp.open_browser = False \n# Fix port to 8888\nc.NotebookApp.port = 8888\nRun Code Online (Sandbox Code Playgroud)\n\n另外,我尝试使用jupyter notebook --ip=my_aws_ip --port=8888. 对于登录部分,我使用ssh -i <pem key> ubuntu@<ec2...> -L 8888:localhost:8888返回的所有上述解决方案https://ip-172-31-44-200:8888/?token=******,并且我无法在网络浏览器中打开此网址,说ip-172-31-44-200\xe2\x80\x99s server IP address could not be found.。
有什么解决办法吗?提前致谢!
\n