将平面文件内容提取为单个单词并存储到数据库中

时间:2014-06-25 17:35:43

标签: java python xml

我已经做了很多互联网搜索,找不到有用的信息..希望你能帮助我..

我希望能够使用平面文件,包含正常内容(即完整的英文句子,段落等),提取每个单词并在SQL数据库中单独存储每个单词,每行一个单词(不是'重要的是,如果有空格,但可以保留撇号等字符

然后我希望有一个带有代码的HTML页面来访问这个数据库,并一次一个字地向用户输出文本,基本上是'写'输入的文件在网页上逐字逐句显示。

这只是一个编码练习,但我很沮丧,因为我知道什么但不知道如何...我不知道从哪里开始。请注意,其中一些文件可能非常大~20,000个单词,因此任何解决方案都可能需要考虑性能因素。

TL; DR:我想将具有正常日常句子的文本文件中的单个单词提取到我可以从HTML页面检索的SQL DB中。

2 个答案:

答案 0 :(得分:0)

简单阅读&分开练习

    with open(<filename>) as f:
        dd = {}
        for ln in f:
            wds = ln.strip().split()
            for word in wds:
                dd[word] = 1 # need something for value

    for wkey in dd:
        <insert into db>                

答案 1 :(得分:0)

那么,在你开始之前,你应该只选择一种编程语言。由于您似乎是初学者,我强烈推荐Python而不是Java,但这取​​决于您是否需要雇主/教授等使用任何特定语言。

同样要指出的是,这也是您选择的一项非常艰巨的任务。我会尝试将其分解为适合您的部分,但我建议您在继续操作之前先从其中一个部分开始,并确保它在您尝试将其放入网络之前在本地计算机上运行。

首先,您需要使用文件中读取的内容,最好是逐行显示。类似于Java中的FileReader / BufferedReader或Python中的open(),readlines()函数的方法将执行这些操作。我还会在线查看有关您将要使用的这两种语言中的文件处理的教程。 Python one is herePyMySQL。在开始处理真实输入文件之前,请使用测试文件或真实文件的一小部分来练习。

当您开始处理文件中的行时,我建议使用空格或任何标点符号(例如,.!?")上的字符串拆分函数将它们拆分为单个单词。这样,您就可以从文件中的每一行中提取单个单词。

接下来,您将要为相应的编程语言选择数据库API。我使用MySQLDB,但Python也有JDBC。在Java中有{{3}}。

您需要在某个服务器上构建数据库,最好在与HTML页面相同的服务器上,以便于连接。在开始尝试处理实际输入文件之前,您需要练习连接数据库并添加示例行。

您无法直接访问数据库 - 您需要使用像Python这样的编码语言。我从未将Java用于网页,但使用Python,您只需输出文本并告诉服务器将其显示为网页。这样就可以了:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import otherstuffhere

## Must have this header to tell browser how to handle this output
## and must be printed first
print ("Content-Type: text/html\n\n")

## Connect to database here

## Your code to display words from the database goes below here
print (myfield1)

另请注意,在输出文本时,您需要将所有HTML标记添加到普通文本输出中。例如,在打印每个单词时,您需要添加<p><br>来结束每一行,因为虽然Python print()函数会自动添加换行符,但这并不是&# 39; t转换为HTML中的换行符。例如:

print ("My word list is: <br>")
for word in dbOutputList:
    print (word)
    print ("<br>")

之后,真正的乐趣/哭泣开始,但你应该继续前进,然后继续前进。