0

嗨,我想知道是否有人可以帮助我我想将一段文本拆分成句子,然后将句子拆分成单词,我已经设法逐句拆分文本,但我不知道如何将句子拆分成单词。我知道如果你用空格替换 "input.text.split('\r?\n')" 括号值,它会将文本逐字拆分,但我希望它首先逐句拆分文本,然后逐词拆分通过单词,以便我可以添加自定义样式。代码如下,在此先感谢。ps 每个句子都有一个换行符。

    <script type="text/javascript">
      var parser = {
        outputString:  '',
        subtitle: function(input) {
          var words = input.text.split('\\r?\\n');
          var duration = input.end - input.start;
          var timeStep = duration/words.length;
          for (var i=0, l=words.length; i<l; ++i) {
            var time = Math.round((input.start + i*timeStep) * 1000);
            var text = words[i];
            var safeText = text.replace('"', '\\"');
            parser.outputString += '<span class="arabic" m="'+time+'" oval="'+safeText+'">'+text+'</span>';
          } //for
          return parser;
        }, //subtitle
    }; //parser

      document.addEventListener('DOMContentLoaded', function(e) {
        var parsed = document.getElementById('parsed');
        parsed.style.width = window.innerWidth - 10 + "px";
        parsed.style.height = window.innerHeight - 10 + "px";
        parsed.value = '<div id="sura-body">' + parser.outputString + '</div>';
      }, false);
    </script>
    <script type="text/javascript" src="paneltext_da.js"></script>
      </head>
     <body>
     <textarea id="parsed"></textarea>
    </body>
    </html>

我仍然无法弄清楚如何将html“ <p>”添加到我使用的数据格式是json的每个句子中。有人可以帮忙吗?谢谢

            .subtitle({
          start: 6.057, 
          end: 9.07, 
          text: "Det er et af de vigtigste værktøjer i hverdagen.", 
          target: "subtitlediv"
        })   
        .subtitle({
          start: 9.07, 
          end: 15.02, 
          text: "Det er i browseren vi læser nyheder, ser TV, checker email, snakker med venner, shopper, booker billetter -", 
          target: "subtitlediv"
        })
        .subtitle({
          start: 15.02, 
          end: 18.08, 
          text: "Tusindvis af de ting vi efterhånden gør på nettet.", 
          target: "subtitlediv"
        })
        .subtitle({
          start: 18.081, 
          end: 23.021, 
          text: "Derfor er det også vigtigt hvilken browser vi bruger, og hvordan den virker.", 
          target: "subtitlediv"
        })
4

3 回答 3

1

您可以只使用split(' '),假设您的句子使用空格分隔的单词来检索单个单词。

于 2011-10-17T19:41:21.503 回答
0
<script type="text/javascript">
  var parser = {
    outputString: '',
    split: function(input) {
      var words = [];
      var sentences = input.text.split('\\r?\\n');
      sentences.forEach(function(sentence){
        words.push("<p class='sentence'>"); // tagged start of sentence
        words = words.concat(sentence.split(' '));
        words.push("</p>"); // tagged end of sentence
      });
      return words;
    },
    subtitle: function(input) {
      var words = this.split(input);
      var duration = input.end - input.start;
      var timeStep = duration/words.length;
      for (var i=0, l=words.length; i<l; ++i) {
        var text = words[i];
        if (text.search(/<\/?p/) === -1) {
          var time = Math.round((input.start + i*timeStep) * 1000);              
          var safeText = text.replace('"', '\\"');
          parser.outputString += '<span class="arabic" m="'+time+'" oval="'+safeText+'">'+text+'</span>';
        }
      } //for
      return parser;
    } //subtitle
  }; //parser
于 2011-10-17T20:04:43.427 回答
0

我已经重构了你的功能,我希望它能帮助你。查看下面的链接。

http://jsfiddle.net/Rdz3s/

于 2011-10-22T11:32:56.253 回答