标签: text-segmentation

使用C#格式化字符串中的句子

我有一个包含多个句子的字符串.如何将每个句子中第一个单词的首字母大写.像单词中的段落格式.

例如,"这是一些代码.代码在C#中."输出必须是"这是一些代码.代码在C#中".

一种方法是根据'.'拆分字符串.然后将第一个字母大写,然后重新加入.

有更好的解决方案吗?

c# string formatting paragraph text-segmentation

6
推荐指数
2
解决办法
4213
查看次数

使用jQuery突出显示长句子

我想突出显示页面上一个段落对象数组中包含的长句子(比如50个字或更多),即$("#content p").我不知道如何解决这个问题.

我最初试图突出显示所有句子,但是当它们包含HTML标记时遇到了麻烦(例如,网上的代码突出显示似乎仅用于单个单词,因此它们不考虑子节点).我知道分裂句子很难; 我想用.!?然后是空格,然后是大写字母,或者根本没有任何东西(即段落的末尾).

在此先感谢您的任何帮助/建议.

regex jquery split paragraph text-segmentation

6
推荐指数
1
解决办法
1121
查看次数

如何在Python中迭代字符串的句子?

假设我有一个字符串text = "A compiler translates code from a source language".我想做两件事:

  1. 我需要使用NLTK库迭代每个单词和词干.阻止的功能是PorterStemmer().stem_word(word).我们必须传递"单词"这个论点.如何阻止每个单词并取回词干?

  2. 我需要从text字符串中删除某些停用词.包含停用词的列表存储在文本文件中(空格分隔)

    stopwordsfile = open('c:/stopwordlist.txt','r+')
    stopwordslist=stopwordsfile.read()
    
    Run Code Online (Sandbox Code Playgroud)

    如何从中删除这些停用词text并获取已清理的新字符串?

python text-segmentation

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

使用动态编程进行分词

所以首先我对Python很陌生,所以如果我做了一件糟糕的事情,我会抱歉这个帖子.我被分配了这个问题:

我们想为下面的问题设计一个动态编程解决方案:有一个字符串可能是一系列单词,删除了所有空格,我们想找到一种方法,如果有的话,在其中插入空格单独的有效英语单词.例如,他们的故事可能来自"你的发泄","青年事件"或"他们出去发泄".如果输入是theeaglehaslande,则没有这样的方法.您的任务是以两种不同的方式实现动态编程解决方案:

  • 迭代自下而上版本
  • 递归记忆版

假设单词的原始序列没有其他标点符号(例如句点),没有大写字母,也没有专有名称 - 所有单词都将在提供给您的字典文件中提供.

所以我有两个主要问题:

  1. 我知道这可以而且应该在O(N ^ 2)中完成,我不认为我的是
  2. 查找表没有添加它看起来的所有单词,这样可以减少时间复杂度

我想要的是什么:

  1. 任何类型的输入(更好的方法,你在代码中看到错误的东西,我如何使查找表工作,如何使用布尔表来构建一系列有效的单词)
  2. 关于如何处理递归版本的一些想法,虽然我觉得一旦我能够解决迭代解决方案,我将能够设计递归版本.

一如既往地感谢任何人给予的任何时间和努力,我们总是感激不尽.

这是我的尝试:

#dictionary function returns True if word is found in dictionary false otherwise
def dictW(s):
    diction = open("diction10k.txt",'r') 
    for x in diction:
        x = x.strip("\n \r")
        if s == x:
            return True
    return False

def iterativeSplit(s):
    n = len(s)
    i = j = k = 0
    A = [-1] * n
    word = [""] * n
    booly = False
    for i in range(0, n): …
Run Code Online (Sandbox Code Playgroud)

python dynamic-programming text-segmentation

6
推荐指数
2
解决办法
2653
查看次数

独立子句边界消歧和独立子句分割 - 任何工具都可以做到这一点?

我记得很久以前从NLTK网站浏览句子分段部分.

我使用粗略的文本替换"句号""空格"和"句号""手动换行符"来实现句子分段,例如使用Microsoft Word替换(.- > .^p)或Chrome扩展程序:

https://github.com/AhmadHassanAwan/Sentence-Segmentation

https://chrome.google.com/webstore/detail/sentence-segmenter/jfbhkblbhhigbgdnijncccdndhbflcha

这不是像NLTK的Punkt标记化器那样的NLP方法.

我分段帮助我更容易找到并重读句子,这有时可以帮助阅读理解.

独立子句边界消歧和独立子句分割怎么样?是否有任何工具试图这样做?

下面是一些示例文本.如果在一个句子中可以识别出一个独立的条款,则会有一个分裂.从一个句子的结尾开始,它向左移动,并贪婪地分裂:

例如

句子边界消歧(SBD),也称为句子破坏,是决定在哪里的自然语言处理中的问题

句子开始和结束.

通常,自然语言处理工具

由于多种原因,他们要求将他们的输入分成句子.

然而,由于标点符号,句子边界识别具有挑战性

标记通常是模棱两可的.

对于例如,一个周期可以

表示缩写,小数点,省略号或电子邮件地址 - 而不是句子的结尾.

华尔街日报语料库中大约 47%的时期

表示缩写.[1]

同样,问号和感叹号也可能

出现在嵌入式引号,表情符号,计算机代码和俚语中.

另一种方法是自动进行

从句子中的一组文件中学习一套规则

休息是预先标记的.

日语和中文等语言

有明确的句子结尾标记.

标准的"香草"的方式

找到句子的结尾:

(a)如果

这是一个时期,

它结束了一个句子.

(b)如果是前一个

令牌是我手工编译的缩写列表,然后

它没有结束一句话.

(c)如果下一个

然后,令牌大写

它结束了一个句子.

这个

策略获得约95%的句子正确.[2]

解决方案基于最大熵模型.[3]

起价架构采用神经网络来

消除句子边界的歧义,达到98.5%的准确率.

(我不确定我是否正确拆分它.)

如果没有办法划分独立条款,是否有任何搜索条件可用于进一步探讨此主题?

谢谢.

nlp text-segmentation

6
推荐指数
1
解决办法
2879
查看次数

文本分割:基于字典的单词拆分

背景

将数据库列名拆分为等效的英文文本以生成数据字典.英语词典是从公司文档,维基和电子邮件的语料库中创建的.dictionary(lexicon.csv)是一个包含单词和概率的CSV文件.因此,有人写"治疗师"这个词(在电子邮件或维基页面上)的次数越多,"治疗师名称"分裂为"治疗师名称"的可能性就越大,而不是其他东西.(词典可能甚至不包括强奸犯这个词.)

源代码

数据文件

问题(更新2011-01-03)

遇到以下问题时:

dependentrelationship::end depend ent dependent relationship
end=0.86
ent=0.001
dependent=0.8
relationship=0.9
Run Code Online (Sandbox Code Playgroud)

存在以下可能的解决方

dependentrelationship::dependent relationship
dependentrelationship::dep end ent relationship
dependentrelationship::depend ent relationship
Run Code Online (Sandbox Code Playgroud)

词典包含与它们的相对概率的话(基于字频): ,dependent 0.8,end 0.86,relationship 0.9,depend 0.3ent 0.001.

消除dep end ent relationship因为dep不在词典中的解决方案(即75%的单词使用),而其他两个解决方案覆盖了词典中100%的单词.在剩余的解决方案中,概率dependent relationship0.72,depend ent relationship0.00027.因此,我们可以选择dependent relationship正确的解决方案.

有关

java nlp data-dictionary text-segmentation

5
推荐指数
1
解决办法
6970
查看次数

当输入的句子没有标点符号时使用的句子分割工具(标准化)

假设有一个类似“给我找一些爵士音乐并播放它”这样的句子,其中所有文本都经过规范化并且没有标点符号(语音识别库的输出)。

除了对连词进行拆分的幼稚方法之外,还有哪些在线/离线工具可用于进行“句子分割”?

输入:

给我找一些爵士音乐并播放它

输出:

给我找点爵士音乐
播放

nlp text-segmentation

5
推荐指数
1
解决办法
1054
查看次数

按句子中的最后一个单词拆分列

YARQ(另一个正则表达式问题).

我如何将以下内容拆分为两列,确保最后一列包含句子中的最后一个单词,第一列包含其他所有单词.

x <- c("This is a test",
       "Testing 1,2,3 Hello",
       "Foo Bar",
       "Random 214274(%*(^(* Sample",
       "Some Hyphenated-Thing"
       )
Run Code Online (Sandbox Code Playgroud)

这样我最终得到:

col1                         col2
this is a                    test
Testing 1,2,3                Hello
Foo                          Bar
Random 214274(%*(^(*         Sample
Some                         Hyphenated-Thing
Run Code Online (Sandbox Code Playgroud)

regex r text-segmentation

5
推荐指数
1
解决办法
228
查看次数

将段落拆分为带有标题和数字的句子

我在 Java 中使用 BreakIterator 类将段落分成句子。这是我的代码:

public Map<String, Double> breakSentence(String document) {
    sentences = new HashMap<String, Double>();
    BreakIterator bi = BreakIterator.getSentenceInstance(Locale.US);
    bi.setText(document);

    Double tfIdf = 0.0;
    int start = bi.first();
    for(int end = bi.next(); end != BreakIterator.DONE; start = end, end = bi.next()) {
        String sentence = document.substring(start, end);

        sentences.put(sentence, tfIdf);
    }

    return sentences;
}
Run Code Online (Sandbox Code Playgroud)

问题是当段落包含标题或数字时,例如:

“罗伯茨教授试图通过编写 1.200 行代码来解决问题。”

我的代码将产生的是:

sentences :
Prof
Roberts trying to solve a problem by writing a 1
200 lines of code
Run Code Online (Sandbox Code Playgroud)

由于标题和数字中的句点,而不是 1 个单句。

有没有办法解决这个问题,用 …

java text-segmentation

5
推荐指数
1
解决办法
2943
查看次数

使用机器学习的段落分割

我有一个PDF格式的大型文档库.这些文件来自不同的来源,没有一种单一的风格.我使用Tika从文档中提取文本,现在我想将文本分段为段落.

我不能使用正则表达式,因为文档没有单一的样式:

  • \nl段落之间的数量在2到4之间.
  • 在某些文档中,单个段落中的行分隔为2 \nl,有些则为单个\nl.

所以我转向机器学习.在(伟大的)Python NLTK书中,使用"."之前和之后的字符等属性对句子进行分词时,可以很好地使用分类.有贝叶斯网络,但没有段落分割.

所以我的问题是:

  • 还有另一种段落分割方式吗?
  • 如果我使用机器学习,是否有可用于培训的分段段落的标记数据?

python nlp machine-learning apache-tika text-segmentation

5
推荐指数
1
解决办法
999
查看次数