小编Sat*_*h K的帖子

使用 Spacy 自定义句子分割

我是 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)

nlp tokenize sentence spacy

10
推荐指数
1
解决办法
1万
查看次数

如何在其他数据框中使用列值生成数据框

我正在处理以下数据框中的数据集。

#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)

python dataframe pandas

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

如何对二维列表进行排序,同时沿其中一维赋予优先级

我正在尝试对二维列表进行排序,同时优先考虑对其中一个维度进行排序。

例:

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存在捷径?

python sorting numpy list pandas

3
推荐指数
1
解决办法
46
查看次数

标签 统计

pandas ×2

python ×2

dataframe ×1

list ×1

nlp ×1

numpy ×1

sentence ×1

sorting ×1

spacy ×1

tokenize ×1