我是 Spacy 和 NLP 的新手。我在使用 Spacy 进行句子分割时面临以下问题。
我试图标记为句子的文本包含编号列表(编号和实际文本之间有空格),如下所示。
import spacy
nlp = spacy.load('en_core_web_sm')
text = "This is first sentence.\nNext is numbered list.\n1. Hello World!\n2. Hello World2!\n3. Hello World!"
text_sentences = nlp(text)
for sentence in text_sentences.sents:
print(sentence.text)
Run Code Online (Sandbox Code Playgroud)
输出(1.,2.,3. 被视为单独的行)是:
This is first sentence.
Next is numbered list.
1.
Hello World!
2.
Hello World2!
3.
Hello World!
Run Code Online (Sandbox Code Playgroud)
但是如果编号和实际文本之间没有空格,那么句子标记化就可以了。像下面这样:
import spacy
nlp = spacy.load('en_core_web_sm')
text = "This is first sentence.\nNext is numbered list.\n1.Hello World!\n2.Hello World2!\n3.Hello World!"
text_sentences = nlp(text)
for sentence in text_sentences.sents: …Run Code Online (Sandbox Code Playgroud) 我正在处理以下数据框中的数据集。
#print(old_df)
col1 col2 col3
0 1 10 1.5
1 1 11 2.5
2 1 12 5,6
3 2 10 7.8
4 2 24 2.1
5 3 10 3.2
6 4 10 22.1
7 4 11 1.3
8 4 89 0.5
9 4 91 3.3
Run Code Online (Sandbox Code Playgroud)
我正在尝试生成另一个数据帧,其中包含选定的col1值作为索引,选定的col2值作为列并分配相应的col3值。
例如:
selected_col1 = [1,2]
selected_col2 = [10,11,24]
Run Code Online (Sandbox Code Playgroud)
新数据框应如下所示:
#print(selected_df)
10 11 24
1 1.5 2.5 Nan
2 7.8 Nan 2.1
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法
selected_col1 = [1,2]
selected_col2 = [10,11,24]
selected_df =pd.DataFrame(index=selected_col1,columns=selected_col2)
for col1_value in selected_col1:
for …Run Code Online (Sandbox Code Playgroud) 我正在尝试对二维列表进行排序,同时优先考虑对其中一个维度进行排序。
例:
twod_list = [[116.2,103.4],[124.9,103.4],[129.5,103.4],
[144.6,103.4],[148.9,103.4],
[119.1,109.3],[125.9,103.4],[146.3,109.3],[135.8,103.4]]
Run Code Online (Sandbox Code Playgroud)
我试图按以下顺序对此进行排序,首先沿第二维排序,然后沿第一维排序,同时保持第二维的顺序。所以我的预期排序列表如下所示
sorted_twod_list = [[116.2,103.4],[124.9,103.4],[125.9,103.4],[129.5,103.4],[135.8,103.4],
[144.6,103.4],[148.9,103.4],
[119.1,109.3],[146.3,109.3]]
Run Code Online (Sandbox Code Playgroud)
我尝试先沿第二维排序,然后再按第一维排序,但这样做会改变顺序。
twod_list = [[116.2,103.4],[124.9,103.4],[129.5,103.4],
[144.6,103.4],[148.9,103.4],
[119.1,109.3],[124.9,103.4],[146.3,109.3],[135.8,103.4]]
twod_sorted_on_y = sorted(twod_list,key=lambda l:l[1])
twod_sorted = sorted(twod_sorted_on_y,key=lambda l:l[0])
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
twod_sorted = [[116.2, 103.4],[119.1, 109.3],[124.9, 103.4],
[124.9, 103.4],[129.5, 103.4],
[135.8, 103.4],[144.6, 103.4],[146.3, 109.3],[148.9,103.4]]
Run Code Online (Sandbox Code Playgroud)
我们也可以使用if条件来完成此操作,但是我想知道是否使用numpy或pandas存在捷径?